分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序。 // 排序原始数据 p ...
分类:
编程语言 时间:
2017-08-14 11:39:13
阅读次数:
251
一、希尔排序 (1)简介 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少, ...
分类:
编程语言 时间:
2017-08-13 20:08:15
阅读次数:
148
排序:对一序列对象依据某个keyword进行排序; 稳定:假设a原本在b前面。而a=b,排序之后a仍然在b的前面; 比如:插入排序、冒泡排序、归并排序、计数排序、基数排序、桶排序 不稳定:假设a原本在b的前面。而a=b。排序之后a可能会出如今b的后面。 比如:希尔排序、高速排序、选择排序、堆排序 内 ...
分类:
编程语言 时间:
2017-08-12 18:59:37
阅读次数:
130
java技术栈 1 java基础: 1.1 算法 1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序 1.2 二叉查找树、红黑树、B树、B+树、LSM树(分别有对应的应用,数据库、HBase) 1.3 BitSet解决数据重复和是否存在等问题 1. ...
分类:
编程语言 时间:
2017-08-12 14:02:40
阅读次数:
219
func ShellSort(num []int) { //increment相隔数量 for increment:=len(num)/2;increment>0 ;increment/=2 { //i序号较大的数组下标,i ,j进行比较 for i := increment; i = 0; j -... ...
分类:
编程语言 时间:
2017-08-10 01:09:06
阅读次数:
126
插入排序算法分为直接插入、折半插入和希尔排序 1.直接插入排序 直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已排好序的有序表中,从而得到一个新的、记录数量增1的有序表。 算法步骤 (1)设待排序的记录存放在数组list[1....n]中, (2)循环n-1次,每次使用顺序查找法, ...
分类:
编程语言 时间:
2017-08-09 11:23:13
阅读次数:
186
也学习了一段时间的ACM , 是该对所有的排序做个小结。 排序的分类: 1 . 冒泡排序 ( 类似于吐泡泡的方式,每次比较相邻的元素,视情况决定是否交换 )。 2 . 选择排序 ( 此方法是从一组数据中选择出最大的或者最小的数 ) 。 3 . 插入排序 4 . 希尔排序 5 . 归并排序 6 . 桶 ...
分类:
编程语言 时间:
2017-08-06 00:17:21
阅读次数:
213
希尔排序 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键 ...
分类:
编程语言 时间:
2017-08-06 00:14:53
阅读次数:
236
在数学中有许多空间表示,比如欧几里德空间、赋范空间、希尔伯特空间等。这些空间之间有什么关系呢? 首先要从距离的定义说起。 什么是距离呢?实际上距离除了我们经常用到的直线距离外,还有向量距离如Σni=1xi?yi????????√, 函数距离如∫ba(f(x)?g(x))2dx、 曲面距离、折线距离等 ...
分类:
其他好文 时间:
2017-08-05 15:32:59
阅读次数:
119
算法简介: 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序, 待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。 实现思路: 示例图: JAVA算法实现: ...
分类:
编程语言 时间:
2017-08-04 20:35:48
阅读次数:
154