快排的实现思路

快速排序:就是将通过定义一个变量,将这个变量和数组中的每项进行比较,最后生成一个从小到大的新数组

 

  • 代码实现步骤
  1. 判断数组长度,如果小于等于1,那就直接返回原数组
  2. 生成一个基准值(一般使用数组第一个)
  3. 生成两个空数组,一个放比基准值小的,一个放比基准值大的
  4. 通过遍历判断当前值与基准值大的小关系,将其存入对应的数组
  5. 在写判断是不要直接使用if..else,具体看注释
  6. 最后返回使用concat方法拼接起来的数组
  •  1         let ary = [12, 78, 95, 62, 26, 23, 62, 3, 33, 49]
     2         function sorts(ary) {
     3             if (ary.length <= 1) {
     4                 return ary
     5             }
     6             let standard = ary[0]
     7             let left_ary = []
     8             let right_ary = []
     9             for (let i = 0; i < ary.length; i++) {
    10                 if (ary[i] < standard) {
    11                     left_ary.push(ary[i])
    12                     //注意下面这个问题必须使用else if(条件) 不然就会造成无限递归
    13                 } else if (ary[i] > standard) {
    14                     right_ary.push(ary[i])
    15                 }
    16 
    17             }
    18             return [].concat(sorts(left_ary), standard, sorts(right_ary));
    19 
    20         }

     

posted @ 2022-04-04 12:03  承平三十三行  阅读(101)  评论(0)    收藏  举报