直接插入排序的 C语言代码 数据结构
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i,j,m,n,N,temp;
printf("Please inpute a number:\n");//输入数组的大小
scanf("%d",&N);//读取数组的大小的数字
int table[N];//定义数组
printf("Please input %d numbers\n",N);//输入数组中的数字
for(n=0;n<N;n++)
scanf("%d",&table[n]);//读取数组中的数字
//下面是直接插入排序算法的具体代码
for(i=1;i<N;i++)//这里什么意思呢?就是数组从0开始,因为一个数组的元素是有序的,因此我们从第二个元素开始排序,即从table[1]开始
{
temp=table[i];
j=i-1;
while(j>=0 && temp<table[j])//也即如果第i个需要排序的元素小于已经拍好了的最后的以为元素也即table[j]
{
table[j+1]=table[j];//我们就把这table[j]往后移
--j;//同时继续往前比较,因此--j;
}
//等到这一轮比较结束后,酒吧temp,也即需要排序
的第i个数组元素插入
table[j+1]=temp;
}
for(m=0;m<N;m++)
printf("%d ",table[m]);//输出排序后的数组
printf("\n");
return 0;
}