Đang tải…
Đang tải…
Chia để trị: chọn một pivot, phân hoạch các giá trị quanh nó, rồi đệ quy sắp xếp hai phía.
Bắt đầu quicksort.
1void quickSort(int[] arr, int left, int right) {2 if (left >= right) return; // trường hợp cơ sở3 int pivot = arr[right], i = left; // pivot = phần tử cuối4 for (int j = left; j < right; j++) // quét cả đoạn5 if (arr[j] < pivot) swap(arr, i++, j); // đưa số nhỏ sang trái6 swap(arr, i, right); // pivot vào chỗ cuối7 quickSort(arr, left, i - 1); // sắp phần trái8 quickSort(arr, i + 1, right); // sắp phần phải9}10 11void swap(int[] arr, int i, int j) {12 int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;13}