int main()
{
int i,j,temp,a[10]={1,3,6,56,9,7,4,2,34,69};
for( i=1; i<10;i++) /* 开始遍历这个 */
{
temp = a[i]; /* 将数组中的一个值赋值给temp*/
for(j=i-1...
分类:
编程语言 时间:
2014-12-19 00:44:30
阅读次数:
193
1、希尔排序介绍希尔排序是对直接插入排序算法的一种改进,当记录较少或者记录本身基本有序的时候直接插入排序的优势非常明显,所以希尔排序就是通过人为的创造这两个条件,然后进行插入排序,基本思想是设置一个增量increment,然后将原始记录“看成”increment组数据,并对每组数据进行直接插入排序,...
分类:
编程语言 时间:
2014-12-17 14:23:59
阅读次数:
201
/* date:2014.12.13
插入排序思路:通过对未排序的数据逐个插入合适的位置,即通过比较和插入来达到排序的目的。
流程:1).对数组的前两个数据进行从小到大的排序;
2).将第 n 个数据与前 n-1 个排好的数据进行比较,将第 n 个数据插入到合适位置;
3).再以同样的方式把剩下的数据逐个进行插入,直至(n-1次后)有序。
时间复杂度:最差...
分类:
编程语言 时间:
2014-12-13 19:26:13
阅读次数:
169
Sort a linked list using insertion sort.链表的插入排序,算法可参看数组插入排序,不同之处在于查找插入点时,链表要从前往后查找。代码如下: 1 ListNode *insertionSortList(ListNode *head) 2 { 3 ...
分类:
其他好文 时间:
2014-12-03 23:07:23
阅读次数:
155
思想简单描述:
在直接插入排序算法中,每次插入一个数,使有序序列只增加1个节点,并且对插入下一个数没有提供任何帮助。如果比较
相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比较就可能消除多个元素交换。D.L.shell于
1959年在以他名字命名的排序算法中实现了这一思想。算法先将要排序的一组数按某个增量d分成若干组,每组中记录的
下标相差d.对每组中全部元素进行排序...
分类:
编程语言 时间:
2014-12-02 17:19:05
阅读次数:
196
首先,对数组元素进行排序方法总结为以下三种:1.插入排序2.选择排序3.交换排序,即冒泡排序接下来,分别对其进行讨论:1.插入排序算法思想:每一步将一个待排序元素按其关键字值的大小插入到已排序序列的适当位置上,直到待排序元素插入完为止。算法实现:测试结果:2.选择排序算法思想:每次从待排序序列中选择...
分类:
编程语言 时间:
2014-11-28 14:15:48
阅读次数:
231
1、插入排序1.1直接插入排序算法介绍: 直接插入排序(straight insertion sort)的做法是: 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从前向后扫描,...
分类:
编程语言 时间:
2014-11-14 20:56:24
阅读次数:
191
插入排序的算法复杂度为O(n2),但假设序列为正序可提高到O(n),并且直接插入排序算法比較简单,希尔排序利用这两点得到了一种改进后的插入排序。一. 算法描写叙述希尔排序:将无序数组切割为若干个子序列,子序列不是逐段切割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小.....
分类:
编程语言 时间:
2014-11-13 14:35:56
阅读次数:
193