插入排序(C#)

來源:互聯網
上載者:User
插入排序(C#)

 

    插入排序是一個對少量元素進行排序的有效演算法.插入排序的工作機理與很多人打牌時,整理手中牌時的做法差不多.在開始摸牌時,我們的左手是空的,
牌面朝下放在桌上.接著,一次從桌上摸起一張牌,並將它插入到左手一把牌的正確位置上.為了找到這張牌的正確位置,要將它與手中已有的每一張牌從右
到左地進行比較.無論在甚麼時候,左手的牌都是排好序的,而這些牌原先都是桌上那副牌裡做頂上的一些牌.

 

 

代碼實現如下:

/// <summary><br /> /// 插入排序(升序)<br /> /// </summary><br /> public static int[] InsertionSort(int[] needSortArray)<br /> {<br /> for (int i = 1; i < needSortArray.Length; i++)<br /> {<br /> int key = needSortArray[i];// 相當於[當前牌],這裡賦給key起臨時儲存的作用</p><p> // 將當前牌與手中的牌依次比較<br /> int j = i - 1;<br /> while (j >= 0 && key < needSortArray[j])<br /> {<br /> // 將元素後移<br /> needSortArray[j + 1] = needSortArray[j];<br /> j--;<br /> }</p><p> // j+1(因為上邊的while迴圈多做了一次判斷)即為當前牌插入的位置<br /> needSortArray[j + 1] = key;<br /> }</p><p> return needSortArray;<br /> }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.