插入排序算法

陌路散爱 提交于 2019-12-23 22:40:01

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

代码实现如下:

 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\n",a[i]);
18     return 0;
19 }

测试结果如下:

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!