排序:对一序列对象依据某个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
算法简介: 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序, 待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。 实现思路: 示例图: JAVA算法实现: ...
分类:
编程语言 时间:
2017-08-04 20:35:48
阅读次数:
154
一、概念 先将整个待排序记录序列分割成若干个子序列,在子序列内分别进行直接插入排序,待整个序列基本有序时,再对全体记录进行一次直接插入排序。 二、复杂度 三、代码实现 ...
分类:
编程语言 时间:
2017-08-01 20:55:39
阅读次数:
146
插入排序基本思想 每次将一个待排序的记录按其keyword大小插入到前面已经拍好序的子文件的适当位置,直到全部记录插入完毕为止。 直接插入排序 基本思想 直接插入排序的基本操作是将一个记录插入到已排好序的有序表中。从而得到一个新的有序表。即如果待排序的记录存放在数组R[1······n]中,排序过程 ...
分类:
编程语言 时间:
2017-07-31 20:48:16
阅读次数:
124
七个基础排序算法(均为内部排序): 直接插入排序 希尔排序 冒泡排序 简单选择排序 高速排序 堆排序 二路归并排序 排序算法稳定性:经过排序后,具有同样关键码的元素之间的相对次序保持不变,则称该排序方法是稳定的;否则不稳定。 直接插入排序: void InsertSort(int a[],int n ...
分类:
编程语言 时间:
2017-07-30 12:56:15
阅读次数:
284