1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        合并已排序的數(shù)組

        共 1542字,需瀏覽 4分鐘

         ·

        2021-07-29 12:35


        條件:

        兩個(gè)數(shù)組分別已經(jīng)升序排列。


        要求:

        合并兩個(gè)數(shù)組并返回新的已經(jīng)排序后的數(shù)組。


        分析該題目,其要求與歸并排序的實(shí)現(xiàn)思想相同。


        歸并排序的算法中,使用“分治”策略,而這道題的實(shí)現(xiàn)邏輯,僅需要用到歸并算法中的“治”。


        function mergeArray(first, sec) {  var temp = new Array(first.length + sec.length)  var t = 0
        var i = 0 var j = 0 // 取較短的數(shù)組作為loop條件 var mid = (first.length <= sec.length) ? first.length - 1 : sec.length - 1 while (i <= mid && j <= mid) { //關(guān)鍵的邏輯在于這行 temp[t++] = (first[i] < sec[j]) ? first[i++] : sec[j++] }
        // 將first數(shù)組中剩余的元素追加到temp while (i <= first.length - 1) { temp[t++] = first[i++] } // 將sec數(shù)組中剩余的元素追加到temp while (j <= sec.length - 1) { temp[t++] = sec[j++] }
        return temp}


        前面的實(shí)現(xiàn),并未能去除重復(fù)的元素,增加題目的要求。


        合并后的數(shù)組,如果包含相同元素,則只保留一個(gè)。


        function mergeArray(first, sec) {  var temp = []  var t = 0
        var i = 0 var j = 0 var k // 取較短的數(shù)組開始loop var mid = (first.length <= sec.length) ? first.length - 1 : sec.length - 1 while (i <= mid && j <= mid) { //關(guān)鍵的邏輯在于這行 k = (first[i] < sec[j]) ? first[i++] : sec[j++] //過濾重復(fù)元素 if (t > 0 && k == temp[t - 1]) continue temp[t++] = k }
        // 將first數(shù)組中剩余的元素追加到temp while (i <= first.length - 1) { k = first[i++] if (t > 0 && k == temp[t - 1]) continue temp[t++] = k } // 將sec數(shù)組中剩余的元素追加到temp while (j <= sec.length - 1) { k = sec[j++] if (t > 0 && k == temp[t - 1]) continue temp[t++] = k }
        return temp}


        以上的數(shù)組合并只是兩個(gè)數(shù)組,繼續(xù)引申出,多個(gè)有序數(shù)組進(jìn)行合并,并去重排序。


        瀏覽 44
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            污视频免费在线看 | 激情视频网 | 天天干天天逼网 | 男人吃女人胸视频 | 大香焦手机免费视频 | 久久九九 | 日韩骚逼| 欧美三级不卡在线观看 | 黄色视频直接看 | 九九大香蕉视频 |