快排的实现思路
快速排序:就是将通过定义一个变量,将这个变量和数组中的每项进行比较,最后生成一个从小到大的新数组
- 代码实现步骤
- 判断数组长度,如果小于等于1,那就直接返回原数组
- 生成一个基准值(一般使用数组第一个)
- 生成两个空数组,一个放比基准值小的,一个放比基准值大的
- 通过遍历判断当前值与基准值大的小关系,将其存入对应的数组
- 在写判断是不要直接使用if..else,具体看注释
- 最后返回使用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 }

浙公网安备 33010602011771号