Video: (11) Quick Sort algorithm – Thuật toán sắp xếp nhanh - Bùi Thế Tâm 2025
Một trong những kỹ thuật phân loại phổ biến nhất được sử dụng trong Java được gọi là kỹ thuật Quicksort. Đó là một cách tuyệt vời để đối phó với đệ quy. Mã thực tế điều khiển Quicksort thường là đơn giản:
public static void sort (int low, int high) {if (low> = higher) return; int p = phân vùng (thấp, cao); sắp xếp (thấp, p); sort (p + 1, high);}
Phương pháp này phân loại phần của một mảng chỉ ra bởi các giá trị chỉ số thấp và cao được chuyển đến nó. Bỏ qua lệnh if nếu bây giờ, phương pháp sắp xếp hoạt động bằng cách gọi một phương pháp phân vùng. Phương pháp này sắp xếp lại mảng thành hai phân vùng để tất cả các giá trị trong phân vùng bên trái nhỏ hơn tất cả các giá trị trong phân vùng bên phải.
Phương thức phân vùng trả về chỉ mục của phần cuối của phân vùng bên trái. Sau đó, phương pháp sắp xếp tự gọi mình hai lần: một lần để phân loại phân vùng còn lại và một lần nữa để sắp xếp phân vùng bên phải.
Để có được phương pháp sắp xếp bắt đầu, bạn gọi nó với 0 là giá trị thấp và chiều dài mảng và 1 là giá trị cao. Do đó, phương pháp sắp xếp bắt đầu bằng cách sắp xếp toàn bộ mảng. Mỗi lần thực hiện phương pháp sắp xếp, nó sẽ tự động gọi hai lần để sắp xếp các phân vùng nhỏ hơn của mảng.
Câu lệnh if khi bắt đầu của phương pháp sắp xếp so sánh giá trị thấp với giá trị cao. Nếu giá trị thấp hoặc lớn hơn giá trị cao, phân vùng chỉ có một phần tử (hoặc có lẽ không có phần tử nào) và do đó đã được sắp xếp. Trong trường hợp đó, phương thức sắp xếp chỉ đơn giản trả về mà không tự gọi lại. Đó là điều kiện để kết thúc đệ quy.