您的位置:首页 > 其它

算法导论--插入排序

2014-10-21 10:35 162 查看
/*
今天无聊看看算法导论,一来就讲插入排序
对于数组 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]);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: