摘要: 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序,快速搞定。 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。该方法的基本思想是... 阅读全文
posted @ 2013-10-17 02:09 bamb00 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率上比前两种方法有较大提高。以n=10的一个数组49, 38, 65, 97, 26, 13, 27, 49, 55, 4为例 1 第一次 gap = 10 / 2 = 5 2 3 49 .. 阅读全文
posted @ 2013-10-17 01:45 bamb00 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。设数组为a[0…n-1]。1.初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=12.将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。3.i++并重复第二步直到i==n-1。排序完成。下面给出严格按照定义书写的代码(由小到大排序): 1 void Insertsort1(int a[], int n) 2 { 3 int i, j, k; 4 5 for (i =... 阅读全文
posted @ 2013-10-17 01:38 bamb00 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序是非常容易理解和实现,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N不为0就重复前面二步,否则排序完成。按照定义很容易写出代码://冒泡排序1void BubbleSort1(int a[], int n){ int i, j; for (i = 0; i a[j]) Swap(a[j - 1], a[j]);}下面对其进行... 阅读全文
posted @ 2013-10-17 01:25 bamb00 阅读(353) 评论(0) 推荐(0) 编辑
摘要: MySQL清空数据库的操作:truncate table tablename;MySQL赋予用户权限命令的简单格式可概括为:grant权限on数据库对象to用户一、grant普通数据用户,查询、插入、更新、删除数据库中所有表数据的权利。1 grant select on testdb.* to common_user@'%' grant insert on testdb.* to common_user@'%' grant update on testdb.* to common_user@'%' grant delete on testdb.* 阅读全文
posted @ 2013-10-17 00:16 bamb00 阅读(36985) 评论(0) 推荐(3) 编辑