中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java代碼和偽代碼實現插入排序的方法

發布時間:2020-06-24 09:35:31 來源:億速云 閱讀:399 作者:Leah 欄目:編程語言

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

插入排序介紹:

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

偽代碼:

INSERTION-SORT(A)	//A是數組
 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;
		}
}

下面我們來看一下插入排序的運行步驟

用數組A[2,4,7,1,3,6]來舉例子

每次for循環中,黃色的長方形是A[j]的值,在第7行的while循環中將它與其左邊的藍色的長方形中的值進行比較。藍色的箭頭指出數組在第8行向右移動一個位置,黃色的箭頭指出第11行關鍵字被移到的地方。

第一次循環:如下圖所示:

java代碼和偽代碼實現插入排序的方法

第二次循環:如下圖所示:

java代碼和偽代碼實現插入排序的方法

注意:這里A[2]大于A[1],因為A[1]肯定是大于A[0]的所以沒必要在比較A[2]與A[1]的大小。while循環因不滿足條件會退出。

第三次循環:如下圖所示:

java代碼和偽代碼實現插入排序的方法

第四次循環:如下圖所示:

java代碼和偽代碼實現插入排序的方法

第五次循環:如下圖所示:

java代碼和偽代碼實現插入排序的方法

A數組此時如圖所示:

java代碼和偽代碼實現插入排序的方法

第六次循環時j為6不滿足循環j<A.length條件,循環退出。

關于java代碼和偽代碼實現插入排序的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浑源县| 洛扎县| 甘孜县| 开鲁县| 时尚| 英山县| 广元市| 巢湖市| 古交市| 鲁山县| 肥乡县| 全椒县| 拜城县| 鄂托克旗| 合川市| 疏勒县| 迁安市| 浙江省| 安丘市| 呈贡县| 勐海县| 渭源县| 屯昌县| 东源县| 荆州市| 乐清市| 绥中县| 临城县| 曲松县| 方城县| 大洼县| 麟游县| 莱西市| 改则县| 华安县| 榕江县| 徐州市| 沙洋县| 合阳县| 东辽县| 梁山县|