<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
        主站蜘蛛池模板: 成年轻人网站色免费看| 免费人成在线观看视频高潮| 久久国产精品成人免费| 亚洲乱亚洲乱少妇无码| 亚洲av永久无码天堂网| 黄页网站免费在线观看| 亚洲午夜精品久久久久久人妖| 亚洲精品视频免费| 国产一区视频在线免费观看| 亚洲中文无码永久免费| 亚洲成在人线aⅴ免费毛片| 亚洲视频欧洲视频| 亚洲日本在线免费观看| 亚洲精品国产情侣av在线| 久9这里精品免费视频| 久久精品国产亚洲AV果冻传媒| 成人影片一区免费观看| 国产亚洲精品无码成人| a在线免费观看视频| 国产v亚洲v天堂无码网站| a毛片免费观看完整| 久久夜色精品国产亚洲AV动态图 | 中文字幕免费视频精品一| 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 | 在线观看亚洲免费| 免费久久精品国产片香蕉| 羞羞视频网站免费入口| 亚洲性久久久影院| 久久免费99精品国产自在现线| 国产亚洲成av片在线观看| 污视频在线免费观看| 亚洲美女自拍视频| 免费看的黄色大片| 免费精品国产自产拍在线观看| 在线亚洲精品福利网址导航| 久久精品免费一区二区三区| 亚洲精品视频在线观看免费| 久久久久国产精品免费免费搜索 | 色婷婷综合缴情综免费观看| 国产成人无码综合亚洲日韩| **aaaaa毛片免费|