手写实现快速排序算法

103 阅读1分钟
 function quickSort(nums, left, right) {
            if (left >= right) return;
            let p = findPlace(nums, left, right);//查找某个元素在整个数组中的位置
            quickSort(nums, left, p - 1) //依次递归查询两端的元素的位置
            quickSort(nums, p + 1, right);

        }
        function findPlace(nums, left, right) {
            let k = right;
            while (left < right) {
                while (left < right && nums[left] <= nums[k]) {
                    left++;
                }
                while (left < right && nums[right] >= nums[k]) {
                    right--;
                }
                swap(nums, left, right)
            }
            swap(nums, k, left);
            return left;
        }

        function swap(nums, i, j) { //交换数组中两个位置
            let temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp
        }