插入排序

来源:互联网 发布:8051单片机工作原理 编辑:程序博客网 时间:2024/05/18 01:51

思想:将要插入的第i个作为关键字target,然后与i之前的比较,如果之前这个有序序列中从后往前比较,有比target大的,就后移,直到找到第一个不大于target的位置插入即可,循环直到结束!

#include<stdio.h>void InserSort(int arr[],int n){int i,j;int target;for(i=1;i<n;i++){target=arr[i];//关键字赋值j=i;while(j>0&&target<arr[j-1]){arr[j]=arr[j-1];//大于target的后移j--;}arr[j]=target;直到找到不大于target的位置插入}}int main(){int arr[]={2,5,1,6,8,4,9,3,7};int count = sizeof(arr)/sizeof(int);int k;InserSort(arr,count);for(k=0;k<count;k++){printf("%d",arr[k] );}return 0;}

 

运行结果: