/* purpose : data and struct algorithm study
* title : insert sort
* author : ntsk13
* data: 2015.01.08
****/
/******************************************************************************************/
基本思想是:
选取一个key值, 对于key左边的元素,大于key的元素右移,之后插入
/******************************************************************************************/
#include<stdio.h>
#define LEN 10
void insert_sort(int *array ,int n);
int main()
{
int i=0;
int data[LEN]={3,6,9,4,0,1,8,5,2,7};
printf("Before sort:\n");
for(i=0;i<LEN;i++){
printf("%d\t",data[i]);
}
printf("\n");
insert_sort(data,LEN);
printf("\nAfter sort:\n");
for(i=0;i<LEN;i++){
printf("%d\t",data[i]);
}
printf("\n\n");
return 0;
}
void insert_sort(int *array ,int n)
{
int i=0,j=0,k=0,key=0;
for(j=1;j<n;j++){
key=array[j];
i=j-1;
while(i>=0 && array[i]>key){
array[i+1]=array[i];
i--;
k++;
}
array[i+1]=key;
}
printf("\n insert sort sway %d times \n",k);
}
基础算法之排序(3)--插入排序
最新推荐文章于 2016-06-28 10:20:34 发布