算法步骤
动图演示
复杂度
时间复杂度 = Ο(nlgn) 空间复杂度 = O(nlgn)
代码实现
private static void sort2(int[] arr,int left,int right) {
int l,r,s;
while (left < right) {
l = left;
r = right;
s = arr[left];
while (l < r) {
while (arr[r] > s) {
r--;
}
arr[l] = arr[r];
while (arr[l] <= s && l < r) {
l++;
}
arr[r] = arr[l];
}
arr[l] = s;
sort2(arr,l + 1,right);
right = l - 1;
}
System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr));
}