排序算法
xiaoo_gan
做一个快乐的程序员
展开
-
[算法之排序]排序类算法模版 (java实现)
/*** * 排序类算法模版 * */public class Example { public static void sort(Comparable[] a) { //排序算法实现 }// 判断第一个数是否大于第二个数 private static boolean less(Comparable v, Comparable w) { return v.comp原创 2014-12-27 21:10:49 · 929 阅读 · 0 评论 -
[算法之排序]希尔排序算法 (java实现)
/*** * * @author xiaoo_gan * 排序算法:希尔排序算法 * 实现过程:希尔排序的思想是使数组中任意间隔为h的元素都是有序的。 * * * * 测试: * input: S H E L L S O R T E X A M P L E * output: * h = 13 第 0 轮:S H E原创 2014-12-28 14:28:27 · 611 阅读 · 0 评论 -
[算法之排序]归并排序算法(java实现)
*** * * @author xiaoo_gan * 归并排序算法 * 实现思想: * 要将一个数组排序,可以先(递归地)将它分成两半分别排序,然后将结果归并起来。 * * 它能将任意长度为N地数组排序所需时间和NlogN成正比。 * 能处理数百万甚至更大规模的数组,这是插入排序或选择排序做不到的。 * 缺点:所需地额外空间和N成正比。 * * 测原创 2015-01-03 22:53:42 · 547 阅读 · 0 评论 -
[算法之排序]快速排序算法(java实现)
/*** * * @author xiaoo_gan * 快速排序 * * * 测试: * 第一种partition * 排序 20000000 个数, 快速排序用时: 11.58600 秒 * 排序 50000000 个数, 快速排序用时: 37.75700 秒 * * * 第二种partition * 排序 20000000 个数, 快速原创 2015-01-03 22:51:24 · 503 阅读 · 0 评论 -
[算法之排序]插入排序算法 (java实现)
/*** * * @author xiaoo_gan * 排序算法:插入排序算法 * * 特点: * 1.当前索引左边的所有元素都是有序的,但它们的最终位置还不确定, * 为了给更小(大)的元素腾出空间,它们可能会被移动。 * 但是当索引到达数组的右端时,数组排序就完成。 * 2.和选择排序不同的是,插入排序所需的时间取决与输入元素的初始顺序。 * 3.时间复杂度:原创 2014-12-27 22:44:26 · 646 阅读 · 0 评论 -
[算法之排序]选择排序算法 (java实现)
/*** * 排序算法:选择排序算法 * 实现过程: * 1.找到数组中最小的那个元素 * 2.将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它就和自己交换) * 3.在剩下的元素中找到最小的元素,将它与数组的第二个元素交换 * 4.一直循环 步骤3, 直到整个数组排序完成。 * * 特点: * 1.对于长度为N的数组,选择排序需原创 2014-12-27 21:39:03 · 582 阅读 · 0 评论 -
[算法之排序]三向切分的快速排序算法(java实现)
/*** * * @author xiaoo_gan * 三向切分的快速排序 * 适应场景: * 出现含有大量重复元素的数组 * 实现思想: * 将数组切分为三部分,分别对应小于、等于和大于切分元素的数组元素 * 特点: * 三向切分的快速排序的运行时间和输入的信息量的N倍是成正比的 * 因为对于包含大量的重复元素的数组,它将排序时间从线性对数级降低到原创 2015-01-04 13:21:25 · 1196 阅读 · 0 评论