Java中怎么實現歸并排序 ,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都網站設計、成都網站制作的開發,更需要了解用戶,從用戶角度來建設網站,獲得較好的用戶體驗。創新互聯公司多年互聯網經驗,見的多,溝通容易、能幫助客戶提出的運營建議。作為成都一家網絡公司,打造的就是網站建設產品直銷的概念。選擇創新互聯公司,不只是建站,我們把建站作為產品,不斷的更新、完善,讓每位來訪用戶感受到浩方產品的價值服務。
public class MergeSort { static int number=0; public static void main(String[] args) { int[] a = {26, 5, 98, 108, 28, 99, 100, 56, 34, 1 }; printArray("排序前:",a); MergeSort(a); printArray("排序后:",a); } private static void printArray(String pre,int[] a) { System.out.print(pre+"\n"); for(int i=0;i<a.length;i++) System.out.print(a[i]+"\t"); System.out.println(); } private static void MergeSort(int[] a) { // TODO Auto-generated method stub System.out.println("開始排序"); Sort(a, 0, a.length - 1); } private static void Sort(int[] a, int left, int right) { if(left>=right) return; int mid = (left + right) / 2; //二路歸并排序里面有兩個Sort,多路歸并排序里面寫多個Sort就可以了 Sort(a, left, mid); Sort(a, mid + 1, right); merge(a, left, mid, right); } private static void merge(int[] a, int left, int mid, int right) { int[] tmp = new int[a.length]; int r1 = mid + 1; int tIndex = left; int cIndex=left; // 逐個歸并 while(left <=mid && r1 <= right) { if (a[left] <= a[r1]) tmp[tIndex++] = a[left++]; else tmp[tIndex++] = a[r1++]; } // 將左邊剩余的歸并 while (left <=mid) { tmp[tIndex++] = a[left++]; } // 將右邊剩余的歸并 while ( r1 <= right ) { tmp[tIndex++] = a[r1++]; } System.out.println("第"+(++number)+"趟排序:\t"); // TODO Auto-generated method stub //從臨時數組拷貝到原數組 while(cIndex<=right){ a[cIndex]=tmp[cIndex]; //輸出中間歸并排序結果 System.out.print(a[cIndex]+"\t"); cIndex++; } System.out.println(); } }
看完上述內容,你們掌握Java中怎么實現歸并排序 的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!
網頁標題:Java中怎么實現歸并排序
URL地址:http://vcdvsql.cn/article4/pdshoe.html
成都網站建設公司_創新互聯,為您提供App開發、動態網站、、品牌網站制作、商城網站、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯