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

首頁 > 編程 > JavaScript > 正文

JS數組排序技巧匯總(冒泡、sort、快速、希爾等排序)

2019-11-20 11:10:50
字體:
來源:轉載
供稿:網友

本文實例總結了JS數組排序技巧。分享給大家供大家參考,具體如下:

① 冒泡排序

bubbleSort:function(array){var i = 0, len = array.length, j, d; for(; i<len; i++){ for(j=0; j<len; j++){ if(array[i] < array[j]){ d = array[j]; array[j] = array[i]; array[i] = d; } } }return array;}

② js 利用sort進行排序

systemSort:function(array){ return array.sort(function(a, b){ return a - b; }); }

③ 快速排序

quickSort:function(array){ //var array = [8,4,6,2,7,9,3,5,74,5]; //var array = [0,1,2,44,4,324,5,65,6,6,34,4,5,6,2,43,5,6,62,43,5,1,4,51,56,76,7,7,2,1,45,4,6,7]; var i = 0; var j = array.length - 1; var Sort = function(i, j){ // 結束條件 if(i == j ){ return }; var key = array[i]; var tempi = i;// 記錄開始位置 var tempj = j; // 記錄結束位置 while(j > i){ // j <<-------------- 向前查找 if(array[j] >= key){ j--; }else{ array[i] = array[j] //i++ ------------>>向后查找 while(j > ++i){ if(array[i] > key){ array[j] = array[i]; break; } } } } // 如果第一個取出的 key 是最小的數 if(tempi == i){ Sort(++i, tempj); return ; } // 最后一個空位留給 key array[i] = key; // 遞歸 Sort(tempi, i); Sort(j, tempj); } Sort(i, j); return array; }

④希爾排序

//Jun.array.shellSort(Jun.array.df(10000)); shellSort:function(array){// var array = [13,14,94,33,82,25,59,94,65,23,45,27,73,25,39,10]; var tempArr = [1750, 701, 301, 132, 57, 23, 10, 4, 1]; // reverse() 在維基上看到這個最優的步長 較小數組 //var tempArr = [1031612713, 217378076, 45806244, 9651787, 2034035, 428481, 90358, 19001, 4025, 836, 182, 34, 9, 1] //針對大數組的步長選擇 var i = 0; var tempArrtempArrLength = tempArr.length; var len = array.length; var len2 = parseInt(len/2); for(;i < tempArrLength; i++){ if(tempArr[i] > len2){ continue; } tempSort(tempArr[i]); } // 排序一個步長 function tempSort(temp){//console.log(temp) 使用的步長統計 var i = 0, j = 0, f, tem, key; var tempLen = len%temp > 0 ? parseInt(len/temp) + 1 : len/temp; for(;i < temp; i++){// 依次循環列 for(j=1;/*j < tempLen && */temp * j + i < len; j++){ //依次循環每列的每行 tem = f = temp * j + i; key = array[f]; while((tem-=temp) >= 0){ // 依次向上查找 if(array[tem] > key){array[tem+temp] = array[tem]; }else{ break; } } array[tem + temp ] = key; } } } return array;}

⑤ 插入排序

insertSort:function(array){/ /var array = [0,1,2,44,4,324,5,65,6,6,34,4,5,6,2,43,5,6,62,43,5,1,4,51,56,76,7,7,2,1,45,4,6,7]; var i = 1, j, temp, key, len = array.length; for(; i < len; i++){ temp = j = i; key = array[j]; while(--j > -1){ if(array[j] > key){ array[j+1] = array[j]; }else{ break; } }array[j+1] = key; } return array; }

附:js中數組(Array)的排序(sort)注意事項

var arrDemo = new Array();arrDemo[0] = 10;arrDemo[1] = 50;arrDemo[2] = 51;arrDemo[3] = 100;arrDemo.sort(); //調用sort方法后,數組本身會被改變,即影響原數組alert(arrDemo);//10,100,50,51 默認情況下sort方法是按ascii字母順序排序的,而非我們認為是按數字大小排序arrDemo.sort(function(a,b){return a>b?1:-1});//從小到大排序alert(arrDemo);//10,50,51,100arrDemo.sort(function(a,b){return a<b?1:-1});//從大到小排序alert(arrDemo);//100,51,50,10

結論:

1.數組調用sort方法后,會影響本身(而非生成新數組)
2.sort()方法默認是按字符來排序的,所以在對數字型數組排序時,不可想當然的以為會按數字大小排序!
3.要改變默認的sort行為(即按字符排序),可以自行指定排序規則函數(如本例所示)

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产ts一区二区| 国产精品毛片a∨一区二区三区|国| 亚洲精品videossex少妇| 日韩精品欧美激情| 91理论片午午论夜理片久久| 亚洲人成在线免费观看| 国模私拍视频一区| 久久精品国产v日韩v亚洲| 国产精品视频永久免费播放| 国产小视频国产精品| 亚洲图中文字幕| 色综合天天狠天天透天天伊人| 久久久久久国产精品三级玉女聊斋| 欧美精品999| 亚洲视频国产视频| 日韩国产欧美区| 亚洲成人网在线观看| 中文字幕精品一区二区精品| 91精品国产综合久久久久久久久| 亚洲视频第一页| 久久精品国产清自在天天线| 亚洲欧美中文字幕| 性色av一区二区三区在线观看| 欧洲午夜精品久久久| 亚洲精品一区二区网址| 欧美专区日韩视频| 成人免费淫片视频软件| 97国产真实伦对白精彩视频8| 久久国产精品久久久久久| 欧美黄色片视频| 奇米一区二区三区四区久久| 亚洲午夜精品久久久久久性色| 久久视频精品在线| 亚洲精品日韩久久久| 欧美黑人又粗大| 在线色欧美三级视频| 自拍视频国产精品| 日韩在线中文视频| 国产一区二区在线播放| 久热精品视频在线免费观看| 4444欧美成人kkkk| 在线观看国产成人av片| 日韩电视剧在线观看免费网站| 欧美日韩在线视频观看| 国产欧美日韩精品在线观看| 国产欧美va欧美va香蕉在| 久久久久久免费精品| 成人h片在线播放免费网站| 亚洲精品福利免费在线观看| 97免费中文视频在线观看| 日韩av在线看| 97在线视频免费看| 成人h视频在线观看播放| 欧美怡春院一区二区三区| 成人av在线天堂| 欧美久久久精品| www.日韩不卡电影av| 成人a在线观看| 久久中国妇女中文字幕| 福利一区视频在线观看| 成人午夜激情免费视频| 国产精品久久91| 亚洲免费伊人电影在线观看av| 亚洲老板91色精品久久| 欧美色欧美亚洲高清在线视频| 欧美激情高清视频| 日本欧美国产在线| 韩曰欧美视频免费观看| 欧美激情aaaa| 国产欧美日韩高清| 国产伦精品一区二区三区精品视频| 日韩美女在线播放| 成人性生交xxxxx网站| 91精品在线观| 在线观看国产精品日韩av| 成人观看高清在线观看免费| 国产精品久久久久77777| 亚洲第一网中文字幕| 欧美又大粗又爽又黄大片视频| 在线视频欧美日韩精品| 欧美精品久久久久久久免费观看| 亚洲一级黄色av| 久久男人的天堂| 欧美在线视频在线播放完整版免费观看| 日韩大陆毛片av| 久久久久久久激情视频| 国产视频久久久久久久| 久久精品国产一区二区三区| 国产一区二区三区三区在线观看| 亚洲日本aⅴ片在线观看香蕉| 在线视频亚洲欧美| 亚洲欧洲在线看| 裸体女人亚洲精品一区| 国产一区二区黑人欧美xxxx| 欧美性感美女h网站在线观看免费| 日韩视频永久免费观看| 国产91精品久久久久久久| 日韩电影中文字幕在线观看| 美女视频黄免费的亚洲男人天堂| 日本免费在线精品| 欧美日韩在线视频一区| 97免费中文视频在线观看| 日韩成人在线视频| 国产91|九色| 揄拍成人国产精品视频| 久久久视频免费观看| 欧美久久精品午夜青青大伊人| 欧美洲成人男女午夜视频| 亚洲午夜未删减在线观看| 精品久久在线播放| 最近更新的2019中文字幕| 国产一区私人高清影院| 欧美精品免费在线观看| 欧美激情2020午夜免费观看| 日韩电影免费观看在线观看| 久久久久久久久国产| 国产一区二区三区在线| 国产精品久久久久久久久借妻| 国产一区二区成人| 日韩成人xxxx| 欧美性xxxx在线播放| 欧美日本啪啪无遮挡网站| 久久久久久久久久婷婷| 久久亚洲私人国产精品va| 92看片淫黄大片欧美看国产片| 国产免费一区二区三区香蕉精| 九九九久久久久久| 久久在线免费视频| 国产精品一区二区久久精品| 国产精品久久久久久久av大片| 操人视频在线观看欧美| 777午夜精品福利在线观看| 亚洲护士老师的毛茸茸最新章节| 国产精品九九九| 欧美裸体男粗大视频在线观看| 在线观看久久av| 亚洲精品日韩激情在线电影| 欧美综合在线观看| 日韩最新免费不卡| 91夜夜未满十八勿入爽爽影院| 久久久国产精品一区| 中日韩美女免费视频网址在线观看| 91久久国产精品91久久性色| 国产美女主播一区| 久久天天躁狠狠躁夜夜爽蜜月| 久久男人av资源网站| 国产精品久久久久7777婷婷| 色综合91久久精品中文字幕| 这里精品视频免费| 中文字幕不卡在线视频极品| 丝袜一区二区三区| 亚洲人成电影在线| 97超级碰碰人国产在线观看| 韩国欧美亚洲国产| 岛国av一区二区三区| 麻豆乱码国产一区二区三区| 国产美女精品视频免费观看| 亚洲图片欧美午夜| 神马国产精品影院av| 精品一区二区三区四区| 97成人精品区在线播放| 久久精品国产综合| 亚洲国产另类久久精品| 欧美日本啪啪无遮挡网站|