/*
今天无聊看看算法导论,一来就讲插入排序
对于数组 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]
设置 0 -> j-1 为有序数组, j 为key值, j+1 ->n-1为无序数组。
*/
#include<stdio.h>
#ifdef my //我自己的 我主要看中的是有序无序
void insert_sort(int data[],int n)
{
int i , j,temp;
for(j=1;j<n;j++)
{
i=0;
while(i<j)
{
if(data[i]>data[j])
{
temp=data[i];
data[i]=data[j];
data[j]=temp;
}
i++;
}
}
}
#else // 算法导论上的 它主要看中的是插入
void insert_sort(int data[],int n)
{
int i,j,key;
for(j=1;j<n;j++)
{
key=data[j];
i=j-1;
while(i>=0&&data[i]>key)
{
data[i+1]=data[i];
i--;
}
data[i+1]=key;
}
}
#endif
void main()
{
int i;
int data[13]={5,3,2,1,5,4,6,8,7,4,9,8,4};
insert_sort(data,13);
for(i=0;i<13;i++)
{
printf("%d",data[i]);
}
}
算法导论--插入排序
最新推荐文章于 2014-10-22 22:03:07 发布