91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java遞歸和非遞歸的實現

發布時間:2020-05-29 14:51:07 來源:億速云 閱讀:235 作者:鴿子 欄目:編程語言
  • 代碼如下:

    private void merge(int[] array, int left, int mid, int right) {
                int i = left;
                int j = mid;
                int length = right - left;
                int[] extra = new int[length];
                int k = 0;
    
                while(i < mid && j < right) {
                        if(array[i] <= array[j]) {
                                extra[k++] = array[i++];
                        } else {
                                extra[k++] = array[j++];
                        }
                }
    
                while (i < mid) {
                        extra[k++] = array[i++];
                }
                while (j < right) {
                        extra[k++] = array[j++];
                }
    
                // 從 extra 搬移回 array
                for (int t = 0; t < length; t++) {
                // 需要搬移回原位置,從 low 開始
                        array[left + t] = extra[t];
                }
        }
  • 遞歸實現操作:

    public void mergeSort(int[] array) {
        mergeSortInternal(array, 0, array.length);
    }
    
    private void mergeSortInternal(int[] array, int left, int right) {
        if(left >= right - 1)
            return;
    
        int mid = (left + right) >>> 1;
        mergeSortInternal(array, left, mid);
        mergeSortInternal(array, mid, right);
    
        merge(array, left, mid, right);
    }
  • 非遞歸實現操作
    public void mergeSort(int[] array) {
                for (int i = 1; i < array.length; i = i * 2) {
                        for (int j = 0; j < array.length; j = j + 2 * i) {
                                int low = j;
                                int mid = j + i;
                                if (mid >= array.length) {
                                        continue;
                                }
                                int high = mid + i;
                                if (high > array.length) {
                                        high = array.length;
                                }
                                merge(array, low, mid, high);
                        }
                }
        }
性能分析
  • 時間復雜度:O(N * log(N))
  • 空間復雜度:O(N)
  • 穩定性:穩定

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

承德市| 青铜峡市| 赤峰市| 天镇县| 黄石市| 军事| 寿阳县| 龙岩市| 赤壁市| 平远县| 辰溪县| 太湖县| 镇江市| 建德市| 中宁县| 晴隆县| 泸水县| 郎溪县| 清河县| 格尔木市| 双江| 桓台县| 务川| 宾阳县| 互助| 措美县| 遂昌县| 白河县| 鄱阳县| 镇巴县| 宁晋县| 莱阳市| 名山县| 曲麻莱县| 兰溪市| 莱西市| 宜春市| 茶陵县| 五指山市| 伽师县| 丁青县|