package huaweiod.排序算法;
import java.util.Arrays;
public class 快速排序 {
public static void main(String[] args) {
int[] arr = {9,8,3,5,6,7,8,9};
mysort(arr, 0, arr.length - 1);
// myprint(arr," ");
}
private static void myprint(int[] arr, String str) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
private static void mysort(int[] arr, int left, int right) {
if (left >= right) {
return;
}
int[] temp = new int[arr.length];
int tleft = left;
int tright = right;
int middle = arr[left];
for (int i = left + 1; i <= right; i++) {
if (arr[i] <= middle) {
temp[tleft] = arr[i];
tleft++;
} else {
temp[tright] = arr[i];
tright--;
}
}
temp[tleft] = middle;
for (int i = left; i <= right; i++) {
arr[i] = temp[i];
}
myprint(arr, " ");
mysort(arr, left, tleft - 1);
mysort(arr, tleft + 1, right);
}
private static void myswap(int[] arr, int l, int r) {
int temp = arr[l];
arr[l] = arr[r];
arr[r] = temp;
}
}
主要思想
找一个数 比它小的放左边 比它大的放左边
然后递归
524



被折叠的 条评论
为什么被折叠?



