js實(shí)現(xiàn)排序(持續(xù)更新)

    let array = [24,1,6,45,23,11,2,34,8,54,14];
       /*
       //直接插入排序 O(n2)
       for (let i=0;i<array.length;i++){
         for (let j=0;j<i;j++){
           if(array[i]<array[j]){
             let siwt = array[i];
             for (let k=i;k>j;k--){
               array[k] = array[k-1];
             }
             array[j] = siwt;
           } 
         }
       }
       */

       //折半插入排序
      /*
      偽代碼
      for(i in arr.length){
         
      }
      */
       for (let i=0;i<array.length;i++){
         let low = 0;
         let high = i-1;
         let middle = Math.floor(((low+high)/2));
         while(low<high){
           console.log(`${low},${high},${middle} | ` + [...array]);
           if(array[i]<array[middle]){
             high = middle-1;
           }else{
             low = middle+1;
           }
           middle = Math.floor(((low+high)/2));
         }
         middle = array[middle]>array[i]?middle:(middle+1);
         let dist = array[i];
         for(let j=i;j>middle;j--){
           array[j]=array[j-1];
         }
         array[middle] = dist;
       }
       console.log([...array]);

       //冒泡排序
       太簡(jiǎn)單就不寫了
       //快速排序
       /*
       偽代碼
       quickSort(low,high){
         let middle = (low+high)/2
         let i=low,j=high;
         while(i<j){
           while(arr[i++]>arr[middle]){
             exchange
           }
           while(arr[j--]<arr[middle]){
             exchange
           }
         }
         return middle;
       }
       sort(low,high){
         if(low>=high) return;
         middle = quickSort(low,high)//middle為選中的數(shù)字排完序之后所處的位置
         sort(low,middle)
         sort(middle+1,low)
       }
       */
       let i = 0;
       let quickSort = (low,high)=>{
         let middle = Math.floor((low+high)/2);
         console.log(`low:${low},high:${high},middle:${middle}`);
         let i = low;
         let j = high;
         while(i<j){
           while(i<middle){
             if(array[i]>array[middle]){
               console.log(`before : ${array[i]},${array[middle]}`);
               let dist = array[i];
               array[i] = array[middle];
               array[middle] = dist;
               middle = i;
               i++;
               break;
             }
             i++;
           }
           while(j>middle){
             if(array[j]<array[middle]){
               console.log(`after : ${array[i]},${array[middle]}`);
               let dist = array[j];
               array[j] = array[middle];
               array[middle] = dist;
               middle = j;
               j--;
               break;
             }
             j--;
           }
         }
         return middle;
       };
       let mainQuickSort = (low,high)=>{
         console.log([...array]);
         let middle = quickSort(low,high);
         if (low>=high) {
             return;
         }
         mainQuickSort(low,middle);
         mainQuickSort(middle+1,high);
       };
       mainQuickSort(0,array.length-1);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子贴谎,更是在濱河造成了極大的恐慌,老刑警劉巖不从,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡稍坯,警方通過查閱死者的電腦和手機(jī)官辽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門蛹磺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人同仆,你說我怎么就攤上這事萤捆。” “怎么了俗批?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵俗或,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我岁忘,道長(zhǎng)辛慰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任臭觉,我火速辦了婚禮昆雀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蝠筑。我一直安慰自己狞膘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布什乙。 她就那樣靜靜地躺著挽封,像睡著了一般。 火紅的嫁衣襯著肌膚如雪臣镣。 梳的紋絲不亂的頭發(fā)上辅愿,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天智亮,我揣著相機(jī)與錄音,去河邊找鬼点待。 笑死阔蛉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的癞埠。 我是一名探鬼主播状原,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼苗踪!你這毒婦竟也來了颠区?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤通铲,失蹤者是張志新(化名)和其女友劉穎毕莱,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颅夺,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡朋截,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吧黄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片质和。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖稚字,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情厦酬,我是刑警寧澤胆描,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站仗阅,受9級(jí)特大地震影響昌讲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜减噪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一短绸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧筹裕,春花似錦醋闭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至抗斤,卻和暖如春囚企,著一層夾襖步出監(jiān)牢的瞬間丈咐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工龙宏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留棵逊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓银酗,卻偏偏與公主長(zhǎng)得像辆影,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子花吟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容