CodeBeauty
春暖花开
posts - 6,comments - 3,trackbacks - 0
05 2012 档案
鸡尾酒排序(改进的冒泡排序)      摘要: 鸡尾酒排序(改进的冒泡排序),原理是对要排序的数组进行双向冒泡排序,双向冒泡排序又称为鸡尾酒排序。  阅读全文
posted @ 2012-05-28 19:58 代码之美 阅读(1988) | 评论 (1)  编辑
同时找出最大值和最小值的一种优化算法(比较次数至多为3【n/2】)      摘要: 但在很多应用中,需同时找到最大值和最小值,一般情况大家较容易想到用上面的算法独立的找到最大值和最小值,各用n-1次,共有2n-2次比较。这在大容量数据库中(n很大),效率不是很高。
在这里,我将给出一种新的算法代码,以大幅提高其效率(n很大时)。具体做法是:每次成对的处理数据,先将一对元素进行比较,然后把较大者与当前最大值比较,较小者与当前最小者比较,因此每两个元素需要3次比较。具体实现时需考虑n的奇偶,n为奇数,3【n/2】次;n为偶数,3n/2-2次。因此总的比较次数至多为3【n-2】。(注:【n】表示不大于n的整数)。  阅读全文
posted @ 2012-05-14 12:39 代码之美 阅读(6487) | 评论 (2)  编辑
归并排序MergeSort      摘要: 归并排序(Merge sort,即合并排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。原理通俗 说就是把原始数组分成若干子数组,对每一个子数组进行排序,之后把子数组与子数组合并,合并后仍然有序,直到全部合并完,形成有序的数组。其时间复杂度为O(n)O(最优)、(nlog n)(最差)。  阅读全文
posted @ 2012-05-11 13:32 代码之美 阅读(1528) | 评论 (0)  编辑
插入排序InsertionSort      摘要: 插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。其时间复杂度为O(n)(最优)、O(n^2)(最差)、O(n^2)(平均)。这是一个对少量元素进行排序的有效算法。  阅读全文
posted @ 2012-05-10 12:44 代码之美 阅读(1597) | 评论 (0)  编辑
冒泡排序BubbleSort      摘要: 冒泡排序是我们接触的最早的排序算法之一,它有着容易理解的优势,时间复杂度为n-1(最优)、n(n-1)/2(最差),由于比较简单,此处只给出我自己编译通过的C++源代码,以供参考。  阅读全文
posted @ 2012-05-09 12:13 代码之美 阅读(1628) | 评论 (1)  编辑
计数排序CountSort      摘要: 一共需要三个数组,分别是待排数组nData,票箱数组(计数数组)pCount,和桶数组(存储结果数组)pSort.  阅读全文
posted @ 2012-05-09 10:19 代码之美 阅读(440) | 评论 (0)  编辑