排序1. 直接插入排序原理:将当前无序区a[i...n-1]的记录一个一个插入到有序区a[0....i-1]合适位置; 1 void insert_sort(int a[], int n) 2 { 3 int j; 4 for(int i=1;i=0&&temp0;h=h/2) 4 ...
分类:
编程语言 时间:
2014-12-24 13:14:23
阅读次数:
153
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
经典排序算法 – 插入排序Insertion sort
插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。
插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。
图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。
以下代码仅供参考,欢迎指正
...
分类:
编程语言 时间:
2014-12-16 13:34:39
阅读次数:
197
排序算法目录概述排序算法交换排序快速排序冒泡排序选择排序堆排序直接选择排序插入排序希尔排序直接插入排序排序算法的运用概述排序算法交换排序快速排序冒泡排序选择排序堆排序直接选择排序插入排序希尔排序直接插入排序排序算法的运用
分类:
编程语言 时间:
2014-12-09 11:53:51
阅读次数:
185
1 public class IncertSort 2 { 3 public static void main(String[] args) 4 { 5 int [] array = {49,38,65,97,76,13,27,49,78,34,12,64,5,4,...
分类:
编程语言 时间:
2014-12-09 00:23:55
阅读次数:
155
思想简单描述:
在直接插入排序算法中,每次插入一个数,使有序序列只增加1个节点,并且对插入下一个数没有提供任何帮助。如果比较
相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比较就可能消除多个元素交换。D.L.shell于
1959年在以他名字命名的排序算法中实现了这一思想。算法先将要排序的一组数按某个增量d分成若干组,每组中记录的
下标相差d.对每组中全部元素进行排序...
分类:
编程语言 时间:
2014-12-02 17:19:05
阅读次数:
196
各种排序方法的性能比较
排序方法
最好时间复杂度
平均时间复杂度
最坏时间复杂度
空间复杂度
稳定性
直接插入排序
O(n)
O(n2)
O(n2)
O(1)
稳定
简单选择排序
O(n2)
O(n2)
O(n2)
O(1)
不稳定
冒泡排序
O(n)
O(n2)
O(n2)
O(1)
稳定
希尔排序
-
...
分类:
编程语言 时间:
2014-11-29 20:15:57
阅读次数:
218
/*
ShellSort.c - by Chimomo
希尔排序又称“缩小增量排序”,是对直接插入排序方法的改进。
希尔排序的基本思想是:先将整个待排序序列分割成若干子序列,然后分别进行直接插入排序,待整个序列中的记录基本有序时,再对全体记录进行一次直接插入排序。
具体做法是:先取一个小于n的整数d1作为第一个增量,将所有距离为d1倍数的记录放在同一个组中,从而把全部记录分成d1组,在各组内进行直...
分类:
编程语言 时间:
2014-11-29 18:59:55
阅读次数:
173