插入排序
排序过程如上,其实这种排序就是我们打扑克牌时使用的排序方式
代码Implement
写一个插入排序的函数,即输入一个数组,完成排序
#include<stdio.h>
#define N 10
void insert_sort(int a[],int n);
int main()
{
int array[LENGTH]={0};
printf("请连续输入10个整数:");
for(int i=0;i<LENGTH;i++)
{
scanf("%d",&array[i]);
}
insert_sort(array,LENGTH);
printf("排序后:");
for(int i=0;i<LENGTH;i++)
{
printf("%d ",array[i]);
}
printf("\n");
}
void insert_sort(int a[],int len)
{
int i,j,temp,key;
for(i=1;i<len;i++)
{
key=a[i];
for(j=i-1;j>=0;j--)
{
if(key<a[j])
{
a[j+1]=a[j];
}
else break;
}
a[j+1]=key;
}
}
一开始的错误做法:
void insert_sort(int a[],int n)
{
int i,j,temp;
for(i=1;i<n;i++)
{
for(j=i-1;j>=0;j--)
{
if(a[i]<a[j])
{
temp=a[i];a[i]=a[j];a[j]=temp;
}
else break;
}
}
}
|