快速排序

1. 原理:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分的所有数据要小,再按这种方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,使整个数据变成有序序列。

2. 代码实现:

 1 function quickSort(arr) {
 2     var len = arr.length;
 3     if (len <= 1) return arr;
 4     var midIndex = Math.floor(len / 2);
 5     var mid = arr.splice(midIndex, 1)[0];
 6     var left = [];
 7     var right = [];
 8     for (var i = 0; i < len; i++) {
 9         if (arr[i] > mid) {
10             left.push(arr[i]);
11         } else {
12             right.push(arr[i]);
13         }
14     }
15     return quickSort(left).concat([mid], quickSort(right));
16 }

3.时间复杂度:O (nlogn)

   空间复杂度:O (logn)

posted @ 2021-06-26 23:15  icyyyy  阅读(36)  评论(0)    收藏  举报