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插入排序(含插入排序代码)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 攻击与脆弱性之间的关系
- 下一篇: Windows下如何打开CSV文件
