我要用这个博客记录个人菜鸟成长之路!!算法
之前只会一种快速排序的排序算法,以为本身好low,今天学习了一种插入排序,嗯,只要认真看几分钟,排序仍是不难的!数组
小二,上代码ide
void InsertSort(int a[],int n) { int i,j,tmp; for(i=1;i<n;i++) { tmp=a[i]; // 将a[i]存在变量tmp里面便于比较 for(j=i-1;j>=0 && a[j]>tmp;j--) // 由于i从1开始,因此每次插入一个a[i]后,a[0~i]的数都是有序的 { a[j+1]=a[j]; // 若是有a[j]>tmp,就将全部大于tmp的向后移 } a[j+1]=tmp; // 将a[i]插入向后移动后的空位中 } }
插入排序的思想是,从须要排序的数组a[i]中挨个取元素(最外面的for循环就干的这个),而后将其插入到a[0~i]中,能够知道,取元素插入的时候,a[0~i]已是有序的了,由于从a[0]开始就是在有序插入了学习