亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js有序數組的連接問題

2019-11-20 21:55:37
字體:
來源:轉載
供稿:網友

1.前言 

昨天碰到一道關于如何解決有序數組的連接問題,這是一個很常見的問題。但是這里要考慮到代碼的效率問題,因為要連接的數組都是有序的,這是一個非常重要的前提條件。

2.簡單但效率不高的算法 

 我首先想到的是使用內置的concat方法,然后再對其進行排序,這種方法完全沒有考慮到數組是有序的前提條件,代碼如下:    

復制代碼 代碼如下:

function concatSort(arrA,arrB){
     return arrA.concat(arrB).sort();
}

  為了弄清楚sort排序到底使用的是什么算法,特地到看了V8引擎的算法(連接),大概意思是當數組的長度較短的時候使用的是插入排序(InsertionSort),當數組的長度較長的時候使用的是快速排序(QuickSort)。糾正了自己長時間來的一個誤區,一直以為sort使用的是冒泡。

3. 取小值插入的方法 

 大概思路:就是同時對兩個數組進行遍歷,設置兩個標志(i,j)用于記錄遍歷的位置,將兩個數組中較小的那個值插入新數組中,接著再將標志往前移動一個位置,重復比較,直到搜索值都插入到數組中。第一次做的時候判斷條件寫錯了,所以出現了死循環,暴露了自己算法能力還是挺薄弱的。     

復制代碼 代碼如下:

function con(arrA,arrB){
   var i , j , k, lenA = arrA.length, lenB = arrB.length , allLen = lenA + lenB,result = [];
   for(i=0,j=0,k =0; k < allLen; k++ ){
       if(i < lenA &&(j >= lenB || arrA[i] < arrB[j])){
           result.push(arrA[i++]); 
       }else{
            result.push(arrB[j++]);
       }
   }
   return result;
}
var a = [1,2,4], b = [3,5,6,7,10];
console.log(con(a,b));  //[1,2,3,4,5,6,7,10]

  將這個算法與上面的方法1,在jsperf進行性能對比,發現第二種算法的效率明顯優于第一種。不相信就猛擊這里。

4.問題升級:增加合并數組的數量

  假如增加數組的個數,;例如 A = [1,5],B = [2,6],C = [3,4].......K = [....],求合并的數組。   

     當時被問到這個問題,第一感覺就是很像”歸并算法“,但是又一想使用歸并算法是用不上數組有序這個前提條件的。接著又想到了堆排序、快排序等算法,發現就是無法很有效地用上數組有序這個前提條件,最后選擇放棄。面試完后依然沒有思路,想了好久不知道如何高效的解決這個問題。快回宿舍的時候,師弟說了一句”又要過節了“,”又“字點醒了我,代碼如下:   

復制代碼 代碼如下:

function conMore(){
    var outerArr = [], i ,len = arguments.length , result = [];
    for(i = 0 ; i<len; i++){
        outerArr.push(arguments[i]);
    }
    if(result.length === 0){
        result = outerArr[0];
    }
    for(i=1 ;i< len; i++){
        result = con(result,outerArr[i]);
    }
    return result;
}
function con(arrA,arrB){
   var i , j , k, lenA = arrA.length, lenB = arrB.length , allLen = lenA + lenB,result = [];
   for(i=0,j=0,k =0; k < allLen; k++ ){
       if(i < lenA &&(j >= lenB || arrA[i] < arrB[j])){
           result.push(arrA[i++]); 
       }else{
            result.push(arrB[j++]);
       }
   }
   return result;
}
var a = [1,4,7], b = [2,5,8], c = [3,6,9,10];
console.log(conMore(a,b,c));   //[1,2,3,4,5,6,7,8,9,10]

再次使用jsperf對代碼的性能進行測試分析,結果請猛擊這里.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
狠狠综合久久av一区二区小说| 精品久久久免费| 一区二区日韩精品| 日韩福利伦理影院免费| 97超碰国产精品女人人人爽| 日韩av在线免费| 欧美成人黄色小视频| 中文字幕亚洲欧美一区二区三区| 爽爽爽爽爽爽爽成人免费观看| 国产在线精品一区免费香蕉| 92看片淫黄大片看国产片| 亚洲成年网站在线观看| 国产精品尤物福利片在线观看| 欧美日韩国产成人高清视频| 欧美性jizz18性欧美| 精品久久久91| 亚洲精品自拍第一页| 亚洲久久久久久久久久久| 国产精品福利久久久| 久久综合久中文字幕青草| www.国产精品一二区| 欧美激情综合色综合啪啪五月| 久久久久免费视频| 91精品啪在线观看麻豆免费| 成人网在线观看| 国产精品久久久久久久久久ktv| 91精品国产九九九久久久亚洲| 日韩国产高清污视频在线观看| 日日骚久久av| 91精品久久久久久久久久入口| 欧美中文字幕第一页| 欧美天堂在线观看| 亚洲成人精品久久| 国产精品久久久久免费a∨| 久久久999成人| 国产精品青草久久久久福利99| 91国产中文字幕| 日韩的一区二区| 热re91久久精品国99热蜜臀| 日韩av资源在线播放| 日韩视频免费观看| 91精品久久久久久久久青青| 久久伊人精品视频| 久久九九精品99国产精品| 日韩成人在线电影网| 久久6精品影院| 国产成人精品免费久久久久| 国产在线视频2019最新视频| 亚洲xxx大片| 69av在线视频| 久久久伊人欧美| 韩曰欧美视频免费观看| 欧美国产亚洲精品久久久8v| 久久久在线视频| 清纯唯美亚洲综合| 国产精品亚洲一区二区三区| 欧美午夜性色大片在线观看| 日韩精品在线视频观看| 少妇高潮 亚洲精品| 国产一区二区三区在线| 欧美性猛交xxxx富婆| 日韩高清电影免费观看完整| 亚洲国产精品嫩草影院久久| 欧美俄罗斯乱妇| 成人h视频在线观看播放| 亚洲在线观看视频网站| 26uuu亚洲国产精品| 亚洲美女动态图120秒| 8090成年在线看片午夜| 亚州欧美日韩中文视频| 国产精品丝袜久久久久久不卡| 国产精品一区二区三区成人| 日韩一区二区在线视频| 日韩第一页在线| 久久精品中文字幕免费mv| 国产欧美在线看| 亚洲欧洲高清在线| 欧美成人午夜影院| 成人国内精品久久久久一区| 最近中文字幕mv在线一区二区三区四区| 51ⅴ精品国产91久久久久久| 欧美大尺度在线观看| 欧美在线观看一区二区三区| 欧美日韩国产影院| 欧美人与性动交a欧美精品| 国产日本欧美视频| 精品一区二区三区三区| 日韩av手机在线| 亚洲精品按摩视频| 法国裸体一区二区| 中文日韩电影网站| 国产精品一区二区久久精品| 激情成人中文字幕| 久久成人人人人精品欧| 国产精品爱久久久久久久| 成人欧美一区二区三区黑人| 久久视频免费在线播放| 久操成人在线视频| 日韩最新中文字幕电影免费看| 日韩最新av在线| 日韩免费观看在线观看| 日韩精品在线视频| 自拍视频国产精品| 日韩av在线直播| 亚洲黄页视频免费观看| 亚洲电影免费观看高清完整版| 成人黄色免费在线观看| 亚洲精品电影网在线观看| 精品视频中文字幕| 欧美精品在线极品| 亚洲第一二三四五区| 亚洲欧美精品中文字幕在线| 久久69精品久久久久久国产越南| 精品国产欧美一区二区三区成人| 亚洲福利视频专区| 欧美成人网在线| 亚洲影院高清在线| 一区二区三区视频观看| 欧美亚洲视频在线观看| 日韩中文字幕视频在线观看| 九九精品在线观看| 国产精品扒开腿做爽爽爽男男| 亚洲图片欧洲图片av| 国产伊人精品在线| 精品网站999www| 久久久久www| 大荫蒂欧美视频另类xxxx| 日韩在线激情视频| 色先锋久久影院av| 日本久久久久亚洲中字幕| 日韩欧美精品中文字幕| 欧美大全免费观看电视剧大泉洋| 国产精品精品视频| 久久香蕉国产线看观看网| 成人国产精品一区| 亚洲第一视频网站| 亚洲男人天堂手机在线| 欧美人与性动交| 全色精品综合影院| 国产精品欧美激情| 国产亚洲欧美日韩美女| 欧美性高潮在线| 夜夜嗨av色一区二区不卡| 久久韩剧网电视剧| www.日本久久久久com.| 亚洲аv电影天堂网| 欧美三级免费观看| 亚洲最新中文字幕| 午夜免费在线观看精品视频| 欧美视频13p| 国产精品久久久久久久9999| 亚洲精品福利资源站| 国产一区二区欧美日韩| 91亚洲人电影| 国产精品久久久亚洲| 精品色蜜蜜精品视频在线观看| 国产精品久久久久久久久久99| 川上优av一区二区线观看| 亚洲美女在线视频| 欧美专区福利在线| 亚洲免费视频观看| 国产精品麻豆va在线播放| 色www亚洲国产张柏芝| 伊人成人开心激情综合网|