排序方法:插入法排序
阿新 • • 發佈:2019-02-12
插入法排序:顧名思義就是把後面的數插入到前面已有的有序數列中在進行排序
舉個列子: 把 7 3 6 9 1 從小到大進行插入法排序;
第一次:先將第一個數排好序,顯然已經排好了 7 3 6 9 1
第二次:再把3插入,將其與7比較 顯然:3 7 6 9 1
下一次:以此類推:將6, 9 ,1依次放入到已排好的序列中
3 6 7 9 1
3 6 7 9 1
1 3 6 7 9
#include<stdio.h>
int main(){
int n,a[100];
int i,j,k;
while(scanf("%d",&n)!=EOF)
{
printf("please input %d numbers:\n",n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<=n;i++)
{
for(j=i;j>=0;j--) //將後面的數一個一個插入,並與前面的數排序
{
if(a[j]<a[j-1])
{
k = a[j];
a[j] = a[j-1];
a[j-1] = k;
}
}
}
for(i=1;i<=n;i++)
printf("%d\t",a[i]);
printf("\n");
}
return 0;
}