茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    js的各種排序算法實(shí)現(xiàn)(總結(jié))
    來源:易賢網(wǎng) 閱讀:1037 次 日期:2016-07-29 14:29:23
    溫馨提示:易賢網(wǎng)小編為您整理了“js的各種排序算法實(shí)現(xiàn)(總結(jié))”,方便廣大網(wǎng)友查閱!

    下面小編就為大家?guī)硪黄猨s的各種排序算法實(shí)現(xiàn)(總結(jié))。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。

    如下所示:

    // ---------- 一些排序算法

    var Sort = {}

    Sort.prototype = {

       // 利用sort進(jìn)行排序 

        systemSort:function(array){ 

         return array.sort(function(a, b){ 

           return a - b; 

         }); 

       },

       // 冒泡排序 

       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; 

       },

       // 快速排序 

       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){ 

           // 結(jié)束條件 

           if(i == j ){ return };

           var key = array[i]; 

           var tempi = i; // 記錄開始位置 

           var tempj = j; // 記錄結(jié)束位置 

           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; 

                 } 

               } 

             } 

           }

           // 如果第一個(gè)取出的 key 是最小的數(shù) 

           if(tempi == i){ 

             Sort(++i, tempj); 

             return ; 

           }

           // 最后一個(gè)空位留給 key 

           array[i] = key; 

           // 遞歸 

           Sort(tempi, i); 

           Sort(j, tempj); 

         } 

         Sort(i, j);

         return array; 

       }, 

       // 插入排序 

       insertSort:function(array){ 

         // http://baike.baidu.com/image/d57e99942da24e5dd21b7080 

         // http://baike.baidu.com/view/396887.htm 

         // 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; 

       }, 

       // 希爾排序 

       //Jun.array.shellSort(Jun.array.df(10000)); 

       shellSort:function(array){ 

         // http://zh.wikipedia.org/zh/%E5%B8%8C%E5%B0%94%E6%8E%92%E5%BA%8F 

         // 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() 在維基上看到這個(gè)最優(yōu)的步長 較小數(shù)組 

         var tempArr = [1031612713, 217378076, 45806244, 9651787, 2034035, 428481, 90358, 19001, 4025, 836, 182, 34, 9, 1] 

           //針對(duì)大數(shù)組的步長選擇 

         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]); 

         }

         // 排序一個(gè)步長 

         function tempSort(temp){ 

           //console.log(temp) 使用的步長統(tǒng)計(jì) 

           var i = 0, j = 0, f, tem, key; 

           var tempLen = len%temp > 0 ? parseInt(len/temp) + 1 : len/temp;  

           for(;i < temp; i++){// 依次循環(huán)列 

             for(j=1;/*j < tempLen && */temp * j + i < len; j++){

                //依次循環(huán)每列的每行 

               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;

       }

    }

    以上這篇js的各種排序算法實(shí)現(xiàn)(總結(jié))就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考

    更多信息請(qǐng)查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:js的各種排序算法實(shí)現(xiàn)(總結(jié))
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報(bào)班

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號(hào)
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)