【排序算法】计数排序

转载来自:计数排序之Java实现 计数排序算法介绍 比较排序算法可以通过决策树模型证明,其下线是O(nlgn)。而本文介绍的是时间效率为O(n)的计数排序。所谓排序算法,无非就是把正确的元素放到正确的位置,计数排序就是计算相同key的元素各有多少个,然后根据出现的次数累加而获得最终...

2015-09-19 22:02:36

阅读数:411

评论数:0

【排序算法】总结

转载来自于:九大排序算法再总结 排序的定义: 输入:n个数:a1,a2,a3,...,an 输出:n个数的排列:a1',a2',a3',...,an',使得a1' In-place sort(不占用额外内存或占用常数的内存):插入排序、选择排序、冒泡排序、堆排序、快速排序。 Out-plac...

2015-09-19 15:50:46

阅读数:282

评论数:0

【排序算法】希尔排序

希尔排序--不需要大量的辅助空间,和归并排序一样容易实现。希尔排序是基于插入排序的一种算法, 在此算法基础之上增加了一个新的特性,提高了效率。     先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取...

2015-09-19 09:56:12

阅读数:442

评论数:0

【排序算法】冒泡排序

冒泡排序算法的运作如下:(从后往前)  比较相邻的元素。如果第一个比第二个大,就交换他们两个。  对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上...

2015-09-19 09:48:05

阅读数:370

评论数:0

【排序算法】堆排序

package sort.algorithm.heap; public class Heap { // 堆排序,它组合了归并排序的时间效率和快速排序的控件效率。和归并排序一样,堆排序 // 的最差情况运行时间为O(nlogn),和快速排序一样它不需要额外的数组 public stati...

2015-08-28 09:43:17

阅读数:324

评论数:0

【排序算法】快速排序

package sort.algorithm.quick; public class Quick { // 快速排序的最坏情况运行时间是O(n^2),但快速排序的平均情况运行时间和最好情况运行时间都是O(nlogn) public static void quicksort(int[] da...

2015-08-28 09:41:39

阅读数:228

评论数:0

【排序算法】归并排序

package sort.algorithm.merg; public class Merg { // 归并算法--划分解决排序 // 归并排序的最坏情况运行时间、平均情况运行时间以及最好情况运行时间都是O(nlogn) // 归并排序的最坏情况运行时间是O(nlogn),而快速排序的最坏...

2015-08-28 09:38:43

阅读数:265

评论数:0

【排序算法】插入排序

package sort.algorithm.insert; public class Insert { // 处理的方法是:每次获得一个元素,构建另一个有序列表。使用一个数组就足够了, // 如果有十个位置,一个列表可以保存在数组的头部,而另一个列表可以保存在数组 // 的尾部。 ...

2015-08-28 09:36:40

阅读数:299

评论数:0

【排序算法】选择排序

package sort.algorithm.select; public class Select { // 选择排序的最差情况运行时间是O(n^2) public static void selectionSort(int[] data) { int length = data.l...

2015-08-28 09:34:06

阅读数:230

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭