<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        常用的 JS 排序算法 整理版

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:17:05
        文檔

        常用的 JS 排序算法 整理版

        常用的 JS 排序算法 整理版:1.冒泡排序 var bubbleSort = function(arr) { for (var i = 0, len = arr.length; i < len - 1; i++) { for (var j = i + 1; j < len; j++) { if (arr[i] > arr[j]) { var temp = arr[
        推薦度:
        導(dǎo)讀常用的 JS 排序算法 整理版:1.冒泡排序 var bubbleSort = function(arr) { for (var i = 0, len = arr.length; i < len - 1; i++) { for (var j = i + 1; j < len; j++) { if (arr[i] > arr[j]) { var temp = arr[

        1.冒泡排序

        var bubbleSort = function(arr) {
        
         for (var i = 0, len = arr.length; i < len - 1; i++) {
         for (var j = i + 1; j < len; j++) {
         if (arr[i] > arr[j]) {
         var temp = arr[i];
         arr[i] = arr[j];
         arr[j] = temp;
         }
         }
         }
        
         return arr;
        };

        2.選擇排序

        var selectSort = function(arr) {
        
         var min;
         for (var i = 0; i < arr.length - 1; i++) {
         min = i;
         for (var j = i + 1; j < arr.length; j++) {
         if (arr[min] > arr[j]) {
         min = j;
         }
         }
         if (i != min) {
         swap(arr, i, min);
         }
         console.log(i + 1, ": " + arr);
         }
         return arr;
        };
        
        function swap(arr, index1, index2) {
         var temp = arr[index1];
         arr[index1] = arr[index2];
         arr[index2] = temp;
        };
        

        3.插入排序

        var insertSort = function(arr) {
         var len = arr.length,
         key;
         for (var i = 1; i < len; i++) {
         var j = i;
         key = arr[j];
         while (--j > -1) {
         if (arr[j] > key) {
         arr[j + 1] = arr[j];
         } else {
         break;
         }
         }
         arr[j + 1] = key;
         }
         return arr;
        };

        4.希爾排序

        function shellSort(arr) {
         if (arr.length < 2) {
         return arr;
         };
         var n = arr.length;
         for (gap = Math.floor(n / 2); gap > 0; gap = Math.floor(gap /= 2)) {
         for (i = gap; i < n; ++i) {
         for (j = i - gap; j >= 0 && arr[j + gap] < arr[j]; j -= gap) {
         temp = arr[j];
         arr[j] = arr[j + gap];
         arr[j + gap] = temp;
         }
         }
         }
         return arr;
        };

        5.歸并排序

        function merge(left, right) {
         var result = [];
         while (left.length > 0 && right.length > 0) {
         if (left[0] < right[0]) {
         // shift()方法用于把數(shù)組的第一個元素從其中刪除,并返回第一個元素的值
         result.push(left.shift());
         } else {
         result.push(right.shift());
         }
         }
         return result.concat(left).concat(right);
        }
        
        function mergeSort(arr) {
         if (arr.length == 1) {
         return arr;
         }
         var middle = Math.floor(arr.length / 2),
         left = arr.slice(0, middle),
         right = arr.slice(middle);
         return merge(mergeSort(left), mergeSort(right));
        }

        6.快速排序

        var quickSort = function(arr) {  
         if (arr.length <= 1) {
         return arr;
         }
        
         var pivotIndex = Math.floor(arr.length / 2); 
         var pivot = arr.splice(pivotIndex, 1)[0];
        
         var left = [];
         var right = [];  
         for (var i = 0; i < arr.length; i++) {   
         if (arr[i] < pivot) {      
         left.push(arr[i]);    
         } else {      
         right.push(arr[i]);    
         } 
         }  
         return quickSort(left).concat([pivot], quickSort(right));
        
        }; 
        

        算法效率比較

        ---------------------------------------------------------------
        | 排序算法 | 平均情況         | 最好情況   | 最壞情況   | 穩(wěn)定性 |
        ---------------------------------------------------------------
        | 冒泡排序 |  O(n²)          |  O(n)     |  O(n²)    | 穩(wěn)定   |
        ---------------------------------------------------------------
        | 選擇排序 |  O(n²)          |  O(n²)    |  O(n²)    | 不穩(wěn)定 |
        ---------------------------------------------------------------
        | 插入排序 |  O(n²)          |  O(n)     |  O(n²)    | 穩(wěn)定   |
        ---------------------------------------------------------------
        | 希爾排序 |  O(nlogn)~O(n²) |  O(n^1.5) |  O(n²)    | 不穩(wěn)定 |
        ---------------------------------------------------------------
        | 歸并排序 |  O(nlogn)       |  O(nlogn) |  O(nlogn) | 穩(wěn)定   |
        ---------------------------------------------------------------
        | 快速排序 |  O(nlogn)       |  O(nlogn) |  O(n²)    | 不穩(wěn)定 |
        ---------------------------------------------------------------

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        常用的 JS 排序算法 整理版

        常用的 JS 排序算法 整理版:1.冒泡排序 var bubbleSort = function(arr) { for (var i = 0, len = arr.length; i < len - 1; i++) { for (var j = i + 1; j < len; j++) { if (arr[i] > arr[j]) { var temp = arr[
        推薦度:
        標簽: 整理 js 排序
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费国产黄网站在线观看可以下载 | 十八禁无码免费网站| 亚洲乱码中文字幕综合234| 最好2018中文免费视频| 亚洲Av无码国产情品久久| 免费看内射乌克兰女| 久久久久亚洲精品天堂久久久久久| 免费一区二区三区在线视频| 亚洲日本中文字幕天堂网| xxxxx做受大片在线观看免费| 久久精品国产精品亚洲| 热久久这里是精品6免费观看| 国产亚洲高清不卡在线观看| 日本视频在线观看永久免费| 91天堂素人精品系列全集亚洲 | 无码一区二区三区亚洲人妻| jjzz亚洲亚洲女人| 中文字幕久精品免费视频| 亚洲高清免费在线观看| 毛片视频免费观看| 免费国产高清毛不卡片基地| 亚洲男人的天堂www| 99在线观看精品免费99| 一本色道久久综合亚洲精品蜜桃冫| 免费的涩涩视频在线播放| 精品国产呦系列在线观看免费| 亚洲成人在线电影| 成人毛片免费播放| fc2免费人成在线视频| 亚洲成av人片在线看片| 国产高清在线精品免费软件| 花蝴蝶免费视频在线观看高清版| 亚洲日韩乱码久久久久久| 四虎永久在线精品免费观看地址 | 国产福利免费视频| 亚洲AV无码一区二区三区牛牛| 亚洲精品成人网久久久久久| 97视频免费观看2区| 黄页网址大全免费观看12网站| 久久久无码精品亚洲日韩蜜臀浪潮| 国产一区二区免费在线|