
算法
蚂蚁冲锋队
知识取之于网络用之于网路
展开
-
ShellSort实例
希尔排序,是对插入排序的优化,是一种不稳定的排序方法,时间复杂度O(nlogn) 最差为O(n^s) 1 实现步骤: (1)设置增量d为排序数组长度的一半 (2)按增量对数据进行比较,满足条件则交换位置 (3)缩小增量为上一次的一半重复(2),直至增量缩小为1 图示: java 实现: public static void shellsort(int[] list转载 2017-02-15 13:59:19 · 288 阅读 · 0 评论 -
并归排序
二路并归排序 稳定排序,事件复杂度O(nlog2n) 控件复杂度O(n) 排序思想: 将两个分别排好序的集合合并到一个大的集合中,并且使得这个大的集合也是有序的。 排序算法: (1)集合A[0~i] 集合B[0~j] 集合C[i+j] (2)依次取出A[g]与B[g],判断两者大小,将小的放入C[h]中 (3)如果A、B有一个遍历结束需要继续遍历另一个 java实现: /原创 2017-08-07 13:53:45 · 393 阅读 · 0 评论 -
简单选择排序
选择排序 排序思想: 每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。 简单来说就是:把数据中最小的值依次找出来。 排序算法: 将数据进行n-1次排序,每次排序取arry[i+1,n-1]中最小的值与arry[i]交换。 java实现: /** * 简单选择排序 * @param array */ public static v原创 2017-08-07 10:40:01 · 246 阅读 · 0 评论 -
快排
快排思想: 采用一种算法将数分成两部分,其中一部分比另一部分都要大,然后再分别对两部分采用相同的方法排序,如此递归便可实现所有数据的排序。 快排算法: (1)取一个参考值key,可以是第一个数据也可以是所有数据中间的那个数 (2)从左到右将比key值大的放到key值得右边,从右到左将别key小的放到key的左边,知道左右计数相等。 (3)对(2)中形成的两部分数据分别执行(1)(2)直到原创 2017-08-07 09:58:00 · 358 阅读 · 0 评论