1)插入排序理论
算法导论伪代码:
描述:
插入排序机理和很多人打牌时,整理手中的牌事做法差不多,在开始摸牌时,我们左手是空的,
牌面朝下放在桌子上。接着,在一次从桌子上摸起一张牌,并将牌插入到左手一把牌中的正确位置,
为了找到这张牌正确的位置,要将它与手中已有的每一张牌从又到左地比较。找到合适的位置插入。
无论什么时候左手上的牌都是排序好的。
2)c代码
环境:gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
/*************************************************************************
> File Name: insertionSort.c
> Author:NULL
> Mail: 574889524@qq.com
> Created Time: Fri 10 Oct 2014 08:41:19 PM CST
************************************************************************/
#include<stdio.h>
int InsertionSort(int *p,int length)
{
int j,key,i,temp;
for(j=1;j<length;++j){
key = p[j];
i = j - 1;
while(i >0 && p[i] > key){
temp = p[i+1];
p[i+1] = p[i];
p[i] = temp;
i--;
}
p[i+1] = key;
}
}
int main()
{
int a[] ={1,4,6,7,10,3};
int i;
InsertionSort(a,sizeof(a)/sizeof(int));
for(i = 0; i < sizeof(a)/sizeof(int);++i)
printf("%d ",a[i]);
printf("\n");
return 0;
}