java代碼和偽代碼實(shí)現(xiàn)插入排序的方法-創(chuàng)新互聯(lián)

這篇文章運(yùn)用簡(jiǎn)單易懂的例子給大家介紹java代碼和偽代碼實(shí)現(xiàn)插入排序的方法,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的廣昌網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

插入排序介紹:

相信大部分人都打過(guò)撲克牌,許多人喜歡發(fā)一張牌就拿一張牌到手上,并且按順序來(lái)放好牌。開(kāi)始時(shí)我們左手為空,牌在桌子上。然后我們每次從桌子上拿走一張牌并將它插入左手中的位置。為了找到一張牌的正確位置,我們從右到左將它與已在手中的每張牌進(jìn)行比較。

偽代碼:

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;
		}
}

下面我們來(lái)看一下插入排序的運(yùn)行步驟

用數(shù)組A[2,4,7,1,3,6]來(lái)舉例子

每次for循環(huán)中,黃色的長(zhǎng)方形是A[j]的值,在第7行的while循環(huán)中將它與其左邊的藍(lán)色的長(zhǎng)方形中的值進(jìn)行比較。藍(lán)色的箭頭指出數(shù)組在第8行向右移動(dòng)一個(gè)位置,黃色的箭頭指出第11行關(guān)鍵字被移到的地方。

第一次循環(huán):如下圖所示:

第二次循環(huán):如下圖所示:

注意:這里A[2]大于A[1],因?yàn)锳[1]肯定是大于A[0]的所以沒(méi)必要在比較A[2]與A[1]的大小。while循環(huán)因不滿足條件會(huì)退出。

第三次循環(huán):如下圖所示:

第四次循環(huán):如下圖所示:

第五次循環(huán):如下圖所示:

A數(shù)組此時(shí)如圖所示:

第六次循環(huán)時(shí)j為6不滿足循環(huán)j<A.length條件,循環(huán)退出。

關(guān)于java代碼和偽代碼實(shí)現(xiàn)插入排序的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

本文題目:java代碼和偽代碼實(shí)現(xiàn)插入排序的方法-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://muchs.cn/article24/cspcje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、電子商務(wù)、手機(jī)網(wǎng)站建設(shè)、服務(wù)器托管、靜態(tài)網(wǎng)站網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)