Thuật toán tìm kiếm Quicksort với Javascrip

Biến, kiểu dữ liệu và toán tử trong javascript

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: quicksortpartition. 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 leftright đượ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.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *