![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
ZyfgoupHah
这个作者很懒,什么都没留下…
展开
-
希尔排序
希尔排序其实就是有一个增量将数组分组,在组内进行插入排序,然后增量不断变小,最后为1,所以最后一趟就是为插入排序,但是最后一趟已经基本有序了,所以速度会比插入排序快一些。------------------------------------------------------------------------------------------------------...原创 2019-01-19 22:05:37 · 118 阅读 · 0 评论 -
快速排序
/* * 快速排序: * 1.分解:选取数组a中一个元素a[p]将数组a[n]分成两部分,使得左边a[0...p-1]的值都小于a[p],右边a[p+1...r]的值都大于a[p] * 而a[p]中的p也是由划分过程中求得的 * 2.解决:通过递归调用快速排序,对子数组a[0..p-1]和a[p+1...r]进行排序 * 3.合并:因为子数组都是在原址(原本数组中)是有序的了,所以不需要...原创 2019-01-26 22:55:36 · 107 阅读 · 0 评论 -
归并排序
/* * 归并排序: * 将数组平均分成两个子序列 * 对两个子序列进行递归排序 * 合并已经排序好的两个子元素 * 重点是合并 比如左右两边分别是13579 246810 要怎么才能合成12345678910 * 可以用一个辅助空间来解决 * 用一个新的数组,分别对比左右两组数据,每组从左端开始有一个指针,小的元素就添加进辅助数组,然后向右移动, * 再比较两个指针指向元素...原创 2019-01-26 22:56:09 · 114 阅读 · 0 评论 -
排序算法的总结
排序算法的总结:基础排序a.冒泡 谁大谁上,每一轮都把最大的顶到天花板 效率太低O(n2)——掌握swapb.选择排序,效率较低,但经常用它内部的循环方式来找最大值和最小值——怎么一次性求出数组的最大值和最小值 O(n2) c.插排,虽然平均效率低,但是在序列基本有序时,它很快,所以也有其适用范围 Arrays这个工具类在1.7里面做了较大改动d.希尔(缩小增量排序),是插排的改良,...原创 2019-02-23 16:04:45 · 96 阅读 · 0 评论 -
归并排序的优化--自然归并排序
不知道怎么将这个算法思想表达的更好,也不知道自己的理解的是否对黑体的注释是普通的自然归并,从相邻长度为1的子数组段进行合并也就是一开始将每两个相邻元素进行归并,然后再相邻四个元素左右两组都有序的合并成4个有序的........自下向上不断往上归并直到有序 /** 自然合并排序是合并排序算法的一种改进. 自然合并排序:* 对于初始给定的数组,通常存在多个长度大于1的已自然排...原创 2019-03-27 10:37:08 · 547 阅读 · 0 评论