這篇文章運用簡單易懂的例子給大家介紹java代碼和偽代碼實現(xiàn)插入排序的方法,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站建設、成都外貿(mào)網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)伊美免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
插入排序介紹:
相信大部分人都打過撲克牌,許多人喜歡發(fā)一張牌就拿一張牌到手上,并且按順序來放好牌。開始時我們左手為空,牌在桌子上。然后我們每次從桌子上拿走一張牌并將它插入左手中的位置。為了找到一張牌的正確位置,我們從右到左將它與已在手中的每張牌進行比較。
偽代碼:
INSERTION-SORT(A) //A是數(shù)組 for j = 2 to A.length key = A[j] //(將A[j]插入排序序列A[1..j-1]) i = j - 1 while i > 0 and A[i] > key A[i+1] = A[i] i = i - 1 A[i+1] = key
java代碼:
//升序排序 public void InsertSortAscending(int[] A){ for(int j = 1;j < A.length;j++){ int key = A[j]; //將A[j]插入排序序列A[1..j-1] int i = j - 1; while(i >= 0 && A[i] > key){ A[j+1] = A[i]; i = i - 1; } A[i+1] = key; } }
下面我們來看一下插入排序的運行步驟
用數(shù)組A[2,4,7,1,3,6]來舉例子
每次for循環(huán)中,黃色的長方形是A[j]的值,在第7行的while循環(huán)中將它與其左邊的藍色的長方形中的值進行比較。藍色的箭頭指出數(shù)組在第8行向右移動一個位置,黃色的箭頭指出第11行關鍵字被移到的地方。
第一次循環(huán):如下圖所示:
第二次循環(huán):如下圖所示:
注意:這里A[2]大于A[1],因為A[1]肯定是大于A[0]的所以沒必要在比較A[2]與A[1]的大小。while循環(huán)因不滿足條件會退出。
第三次循環(huán):如下圖所示:
第四次循環(huán):如下圖所示:
第五次循環(huán):如下圖所示:
A數(shù)組此時如圖所示:
第六次循環(huán)時j為6不滿足循環(huán)j 關于java代碼和偽代碼實現(xiàn)插入排序的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享標題:java代碼和偽代碼實現(xiàn)插入排序的方法
網(wǎng)頁地址:http://weahome.cn/article/giijco.html