快速排序

采用二分法,取出中間數(shù),數(shù)組每次和中間數(shù)比較,小的放到左邊,大的放到右邊

<script>

var?arr?=?[3,?1,?4,?6,?5,?7,?2];?

????????function?quickSort(arr)?{

????????????if?(arr.length?==?0)?{

????????????????return?[];????//?返回空數(shù)組

????????????}

????????????//?獲取中間數(shù)

????????????var?cIndex?=?Math.floor(arr.length?/?2);

????????????//?console.log(arr.length?/?2);

????????????var?c?=?arr.splice(cIndex,?1);

????????????var?l?=?[];

????????????var?r?=?[];?

????????????for?(var?i?=?0;?i?<?arr.length;?i++)?{

????????????????if?(arr[i]?<?c)?{

????????????????????//?中間數(shù)的左側(cè)

????????????????????l.push(arr[i]);

????????????????}?else?{

????????????????????//?中間數(shù)的右側(cè)

????????????????????r.push(arr[i]);

????????????????}

????????????}

????????????//?這個遞歸

????????????return?quickSort(l).concat(c,?quickSort(r));

????????}

????????//?調(diào)用函數(shù)

????????let?res?=?quickSort(arr);

????????console.log(res);

//結(jié)果為[1,2,3,4,5,6,7]

</script>


從中間數(shù)為2往上一層走就是[2]+3就是[2,3]一直往上走就是[1,2,3,4,5,6,7]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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