function qsort(arr, l, r) { if (l >= r) return arr; let i = l - 1; let j = r; let x = arr[l + r >> 1]; while (i < j) { do ++i; while (arr[i] < x); do --j; while (arr[j] > x); if (i < j) { let temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } return qsort(arr, l, j), qsort(arr, j + 1, r); } function sort(arr) { return qsort(arr, 0, arr.length - 1); } const nums = [2, 4, 1, 6, 5, 3, 7]; // 输出 [1, 2, 3, 4, 5, 6, 7] console.log(sort(nums));