插入排序算法

大致意思就是挨着挨着取一个元素,插入到已经部分排序好的序列中,如果小于序列中的元素,就将整个序列往后移,直到大于某个值或者数组首位就放过去这个元素。

代码实现如下:

 1 #include <stdio.h>
 2 int a[5]={432,43,4,2,10};
 3 void InsertSort(int a[],int n)
 4 {
 5     int i,j,tmp;
 6     for(i=1;i<n;i++){
 7         if(a[i]<a[i-1]){
 8             tmp=a[i];
 9             for(j=i;tmp<a[j-1];--j) a[j]=a[j-1];
10             a[j]=tmp;
11         }
12     }
13 }
14 int main()
15 {
16     InsertSort(a,5);
17     for(int i=0;i<5;i++) printf("%d
",a[i]);
18     return 0;
19 }

测试结果如下:

原文地址:https://www.cnblogs.com/shixinzei/p/10995117.html