日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java插入排序(含插入排序代码)

發布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java插入排序(含插入排序代码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一:插入排序思想?編輯

二:插入排序代碼

三:結果


一:插入排序思想

基本思想:每一步將一個待排序的數據插入到前面已經排好序的有序序列中,直到插完所有元素為止。

算法實現:直接插入排序是將無序序列中的數據插入到有序的序列中,在遍歷無序序列時,首先拿無序序列中的首元素去與有序序列中的每一個元素比較并插入到合適的位置,一直到無序序列中的所有元素插完為止。對于一個無序序列arr{4,6,8,5,9}來說,我們首先先確定首元素4是有序的,然后在無序序列中向右遍歷,6大于4則它插入到4的后面,再繼續遍歷到8,8大于6則插入到6的后面,這樣繼續直到得到有序序列{4,5,6,8,9}。

(1)我們用一個變量tmp存放關鍵字,因為我們先確定第一個元素是暫時有序的,所以tmp存放無序序列的第二個元素,然后i開始也為第二個元素的下標,j則為i-1,因為j要用有序的區域元素來與無序的區域元素比較。那么一開始i=1,tmp=6,j=0,因為6>4,所以6就不用進行插入;然后i向右走,i=2,tmp=arr[2]=8,j=i-1=1,8>6>4也不用插入。

(2)i繼續向右走,i=3,tmp=arr[3]=5,j=i-1=2,5<8則要將8給5所在的元素數據,j向左走繼續遍歷有序區域。

(3)當j向右走到6時發現6>tmp=5,所以將6給它右邊的第一個值(j+1的位置),再繼續遍歷有序區域,j=0時發現4<5則j+1的位置就是5該在的位置那么就將tmp的值5給j+1的位置的元素的值。

(4)再繼續上面的操作,i最后到9發現比前面有序區域的元素都大,則不用再插入了,這樣就得到了一個有序序列{4,5,6,8,9}。

二:插入排序代碼

public static void sort(int[] arrays) {int temp = 0;for(int i = 1; i <= arrays.length - 1; i++) {for(int j = i; j > 0; j--) {if(arrays[j - 1] > arrays[j]) {temp = arrays[j];arrays[j] = arrays[j - 1];arrays[j - 1] = temp; }else {//不滿足條件結束循環即可break;}}}}

三:結果

?

總結

以上是生活随笔為你收集整理的java插入排序(含插入排序代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。