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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java线程归并排序_Java-归并排序 - FeanLau的个人空间 - OSCHINA - 中文开源技术交流社区...

發布時間:2023/12/10 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java线程归并排序_Java-归并排序 - FeanLau的个人空间 - OSCHINA - 中文开源技术交流社区... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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-归并排序 - FeanLau的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。

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