選擇排序法

我要用這個博客記錄個人菜鳥成長之路!!算法

之前只會一種快速排序的排序算法,以爲本身好lowj_0065.gif,今天學習了一種插入排序,嗯,只要認真看幾分鐘,排序仍是不難的!數組

小二,上代碼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]開始就是在有序插入了學習

相關文章
相關標籤/搜索