插入排序的算法复杂度为O(n2),但假设序列为正序可提高到O(n),并且直接插入排序算法比較简单,希尔排序利用这两点得到了一种改进后的插入排序。一. 算法描写叙述希尔排序:将无序数组切割为若干个子序列,子序列不是逐段切割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小.....
分类:
编程语言 时间:
2015-02-04 18:28:19
阅读次数:
177
有序链表的用途有序链表主要用途就是用于排序,大家都知道,数组的插入排序算法,排序的时候需要大量的复制数据,这样效率就会很低,用有序链表实现无序数组的排序这样可以减少很多次的数据的复制。效率大大提高。package 有序链表;public class Link { public double dd; ...
分类:
其他好文 时间:
2015-01-28 21:16:05
阅读次数:
322
希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列,所有...
分类:
编程语言 时间:
2015-01-26 14:56:48
阅读次数:
254
算法思想:A[i]插入到已排序好的A[0,1,2,...i-1]的过程为将A[i]与已排序好的元素比较,找到其应插入的位置,将其后的元素后移一位。循环这一过程即可完成排序⒈ 从第一个元素开始,该元素可以认为已经被排序⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描⒊ 如果该元素(已排序)大于新...
分类:
编程语言 时间:
2015-01-23 21:20:47
阅读次数:
168
希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序...
分类:
编程语言 时间:
2015-01-13 11:58:03
阅读次数:
202
输入一个元素,检查数组列表中的每个元素,将其插入到一个已经排好序的数列中的适当位置,使数列依然有序,当最后一个元素放入合适位置时,该数组排序完毕
分类:
编程语言 时间:
2015-01-09 22:16:49
阅读次数:
231
生活中的“插入排序”
扑克牌我们大部分人都玩过,当然也都知道该怎么把刚抓上来的牌放哪里,最后得到一手排好的牌。但其中所蕴含的算法原理
不知道你有没有想过。计算机科学家把人的这一直观想法翻译为计算机程序于是便有了我们所说的插入排序:
图示
代码(C++)
/*************************************
函数:插入排序
说...
分类:
编程语言 时间:
2015-01-06 18:06:14
阅读次数:
208
一:起因
(1)包括冒泡算法、快排算法、插入排序算法等;还有基于外部排序的归并排序(以二路归并排序为例 )
但是基本上在一个数量级上;
(2)
mergesort (归并排序) 可以应用在外部排序,这与基于内存的quicksort(快速排序)略有不同,他们的算法复杂度都可以达到O(nlogn)
(3)mergesort 是稳定的排序算法,需要额外的空间开销O(n)...
分类:
其他好文 时间:
2015-01-06 17:52:40
阅读次数:
241
算法是程序的灵魂,而排序算法则是一种最基本的算法。排序算法有许多种,本文介绍4中排序算法:冒泡排序,选择排序,快速排序和插入排序,以从小到大为例。...
分类:
编程语言 时间:
2015-01-03 11:58:19
阅读次数:
183
【算法】 插入排序 /// /// 插入排序 /// 思路: 遍历源集合元素插入到新集合中, /// 插入时从后往前遍历新集合, /// 比较插入元素与新集合元素大小,以此判断插入的位置 /// /...
分类:
编程语言 时间:
2014-12-23 19:13:01
阅读次数:
162