摘要:
一.常见排序算法的实现1.冒泡排序冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N不为0就重复前面二步,否则排序完成。按照定义很容易写出代码:void bubbleSort(int arr[],int n){ int i,j,t; for(i=0;i void bubbleSort(int arr[],int n){ int i,j,t; for(i=0...
阅读全文
posted @ 2013-10-08 13:46
猿人谷
阅读(974)
推荐(0)
编辑
摘要:
1.各种排序算法的时间复杂度和空间复杂度分析选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。排序法平均时间最差情形稳定度额外空间备注冒泡O(n2) O(n2)稳定O(1)n小时较好交换 O(n2) O(n2)不稳定O(1)n小时较好选择O(n2)O(n2)不稳定O(1)n小时较好插入O(n2)O(n2)稳定O(1)大部分已排序时较好基数O(logRB)O(logRB)稳定O(n)B是真数(0-9),R是基数(个十百)ShellO(nlogn)O(ns) 11,则其双亲是结点[i/2]。如果2i>n,则结点i无左孩子(结点i为
阅读全文
posted @ 2013-10-08 13:31
猿人谷
阅读(276)
推荐(0)
编辑