快速排序算法的简短描述
生活随笔
收集整理的這篇文章主要介紹了
快速排序算法的简短描述
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一個數(shù)組,比如:
[3,9,2,1,5,4]
取出某個元素(比如第一個元素3);
將除3之外的元素元素分為兩組,小于(less than)等于(equal)3的為一組,[1,2],記為lt,大于(greater than)3的為一組[4,5,9] ,記為gt;
對lt 和 gt 重復上面的步驟——快速排序是一個遞歸過程(recursive);
將最終的結果合并。
用js來描述就是:
// list that greater than nfunction listgt(list,n){return list.filter(function(m){return m > n;})}// eg.// 返回大于2的元素// -> [ 3, 9, 5, 4 ]// console.log(listgt([3,9,2,1,5,4],2));// list that less than or equal to nfunction listlet(list,n){return list.filter(function(m){return m <= n;})}// eg.// 返回比小于或等于2的元素// -> [ 2, 1 ]// console.log(listlet([3,9,2,1,5,4],2));function first(list){return list[0];}function rest(list){return list.slice(1);}function quicksort(list){if(list.length === 0){return [];}else{var n = first(list), lt = listlet(rest(list),n), gt = listgt(rest(list),n)// 遞歸 & 合并return [].concat(quicksort(lt),n,quicksort(gt))}}console.log(quicksort([3,9,2,1,5,4]));// [ 1, 2, 3, 4, 5, 9 ]?
轉載于:https://www.cnblogs.com/wewe/p/3163974.html
總結
以上是生活随笔為你收集整理的快速排序算法的简短描述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Cmd】批处理
- 下一篇: 我国第三代航天远洋测量船远望 5 号船启