數(shù)組二分法

function quickSort(obj){
       if(obj.length<=1){
          return obj;
      } 
    //取得數(shù)組中間的值
 var nowMidder=obj.splice(Math.floor(obj.length/2),1);
 var leftArr = [];
 var reightArr = []; 
 for(var i=0;i<obj.length;i++){
 if(obj[i]<=nowMidder){
    leftArr.push(obj[i]);     //把比中間值小的放一個數(shù)組
  }else{
    reightArr.push(obj[i]);  //把比中間值大的放另一個數(shù)組
   }
 }
/*concat() :將參數(shù)添加到原數(shù)組中。這個方法會先創(chuàng)建當(dāng)前數(shù)組一個副本,
          然后將接收到的參數(shù)添加到這個副本的末尾,最后返回新構(gòu)建的數(shù)組。*/
    
return quickSort(leftArr).concat(nowMidder,quickSort(reightArr));
/*在對小數(shù)組 、 大數(shù)組 繼續(xù)回調(diào)上面的分組方法,最后當(dāng)數(shù)組長度只  
 有一的時候,不再往下執(zhí)行,把返回的單個數(shù)組層層拼裝新數(shù)組,即最后返回的排序好的數(shù)組*/
  }
 window.onload=function(){
 var  arr=[4,2,4,445,2312,4545,87,5,11,12,44];
 alert(quickSort(arr));
  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容