Quicksort là một thuật toán sắp xếp rất hiệu quả được sử dụng rộng rãi trong lĩnh vực kỹ thuật và khoa học máy tính. Dưới đây là mã Javascript cho thuật toán tìm kiếm Quicksort:
function quicksort(arr, left = 0, right = arr.length - 1) {
if (left < right) {
let pivotIndex = partition(arr, left, right);
quicksort(arr, left, pivotIndex - 1);
quicksort(arr, pivotIndex + 1, right);
}
return arr;
}
function partition(arr, left, right) {
let pivotIndex = Math.floor((left + right) / 2);
let pivot = arr[pivotIndex];
while (left <= right) {
while (arr[left] < pivot) {
left++;
}
while (arr[right] > pivot) {
right--;
}
if (left <= right) {
[arr[left], arr[right]] = [arr[right], arr[left]];
left++;
right--;
}
}
return left;
}
Mã này bao gồm hai hàm: quicksort
và partition
. Hàm quicksort
sắp xếp mảng bằng cách chia mảng thành các phần nhỏ hơn dựa trên một phần tử gọi là pivot. Sau đó, hàm partition
được sử dụng để phân chia mảng thành hai phần, một phần chứa các phần tử nhỏ hơn pivot và một phần chứa các phần tử lớn hơn pivot.
Mã có thể được sử dụng bằng cách gọi hàm quicksort
và truyền mảng cần sắp xếp vào như là đối số đầu tiên. Ví dụ:
let arr = [5, 2, 1, 8, 4];
quicksort(arr); // [1, 2, 4, 5, 8]
Chú ý rằng các đối số tùy chọn left
và right
được sử dụng để chỉ định phạm vi của mảng được sắp xếp, mặc định là toàn bộ mảng nếu không được chỉ định.