第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這段Fork/Join排序為什么在遞歸了幾步后就停止了,輸出并沒有排序完成。

這段Fork/Join排序為什么在遞歸了幾步后就停止了,輸出并沒有排序完成。

繁華開滿天機 2019-03-21 18:19:17
class MergerSort extends RecursiveAction {    private int[] array;    private int begin, end, threshold;    protected MergerSort(int[] array, int begin, int end, int threshold) {        this.array = array;        this.begin = begin;        this.end = end;        this.threshold = threshold;    }    private void merger(int begin, int mid, int end) {        int i = begin, j = mid + 1, k = 0;        int[] temp = new int[end - begin + 1];        while (i <= mid && j <= end) {            if(array[i] < array[j])                temp[k++] = array[i++];            else                temp[k++] = array[j++];        }        while(i <= mid)            temp[k++] = array[i++];        while(j <= end)            temp[k++] = array[j++];        while(--k >= 0)            array[end--] = temp[k];    }    @Override    protected void compute() {        if (end - begin < threshold) {            //小于閾值,使用一般排序算法            Arrays.sort(array, begin, end + 1);        } else {            //使用并發(fā)歸并排序            int mid = (end - begin) / 2;            MergerSort left = new MergerSort(array, begin, mid, threshold);            MergerSort right = new MergerSort(array, mid + 1, end, threshold);            left.fork();            right.fork();            left.join();            right.join();            merger(begin, mid, end);        }    }}輸出:1 1 2 2 6 7 23 23 52 56 58 8 5 4 9 4 6 4 1 8 4 14 5 798 4 56 153 321 7 56 0 3 456 23 1 65 3 454 8 63 78
查看完整描述

1 回答

?
MMMHUHU

TA貢獻1834條經(jīng)驗 獲得超8個贊

不知道你其他部分什么樣子
不過一眼看去int mid = (end - begin) / 2;明顯應(yīng)該是int mid = (end + begin) / 2;

查看完整回答
反對 回復(fù) 2019-04-17
  • 1 回答
  • 0 關(guān)注
  • 367 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號