Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk mengisih set nombor mengikut susunan saiz dalam javascript

Bagaimana untuk mengisih set nombor mengikut susunan saiz dalam javascript

PHPz
PHPzasal
2023-04-21 09:11:581134semak imbas

JavaScript ialah bahasa pengaturcaraan yang digunakan secara meluas yang boleh melaksanakan banyak fungsi dalam pembangunan web, pembangunan permainan, pembangunan mudah alih dan bidang lain. Dalam proses pembangunan sebenar, algoritma pengisihan adalah salah satu masalah pengaturcaraan biasa. Bagaimana untuk menggunakan JavaScript untuk mengisih set nombor mengikut susunan saiz?

JavaScript menyediakan pelbagai algoritma pengisihan untuk menyelesaikan masalah ini. Artikel ini akan memperkenalkan beberapa algoritma pengisihan yang biasa digunakan.

Isih gelembung

Isih gelembung ialah algoritma pengisihan yang mudah adalah untuk membandingkan dua nombor bersebelahan Jika nombor yang terdahulu lebih besar daripada nombor yang terakhir, kemudian Tukar dua nombor dan ulangi ini proses sehingga semua nombor mengikut saiz.

Berikut ialah pelaksanaan JavaScript bagi isihan gelembung:

function bubbleSort(arr) {
  var len = arr.length;
  for (var i = 0; i < len - 1; i++) {
    for (var j = 0; j < len - 1 - i; j++) {
      if (arr[j] > arr[j + 1]) {
        var temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }
  return arr;
}

var arr = [5, 3, 8, 4, 2];
console.log(bubbleSort(arr)); // [2, 3, 4, 5, 8]

Isih pilihan

Isih pilihan ialah satu lagi algoritma pengisihan mudah dan prinsipnya ialah Cari elemen terkecil dalam tatasusunan dan letakkannya dahulu, kemudian cari elemen terkecil di antara elemen yang selebihnya dan letakkannya selepas elemen yang diisih secara bergilir-gilir sehingga semua elemen disusun.

Berikut ialah pelaksanaan JavaScript bagi isihan pemilihan:

function selectionSort(arr) {
  var len = arr.length;
  for (var i = 0; i < len - 1; i++) {
    var minIndex = i;
    for (var j = i + 1; j < len; j++) {
      if (arr[j] < arr[minIndex]) {
        minIndex = j;
      }
    }
    var temp = arr[i];
    arr[i] = arr[minIndex];
    arr[minIndex] = temp;
  }
  return arr;
}

var arr = [5, 3, 8, 4, 2];
console.log(selectionSort(arr)); // [2, 3, 4, 5, 8]

Isihan sisipan

Isihan sisipan ialah algoritma pengisihan yang mudah dan cekap Prinsipnya ialah memasukkan elemen untuk diisih ke kedudukan yang sesuai dalam elemen yang disusun. Pengisihan sisipan terbahagi kepada dua jenis: pengisihan sisipan langsung dan pengisihan bukit Di bawah kami akan memperkenalkan pelaksanaan pengisihan sisipan langsung.

Berikut ialah pelaksanaan JavaScript bagi isihan sisipan:

function insertionSort(arr) {
  var len = arr.length;
  var preIndex, current;
  for (var i = 1; i < len; i++) {
    preIndex = i - 1;
    current = arr[i];
    while (preIndex >= 0 && arr[preIndex] > current) {
      arr[preIndex + 1] = arr[preIndex];
      preIndex--;
    }
    arr[preIndex + 1] = current;
  }
  return arr;
}

var arr = [5, 3, 8, 4, 2];
console.log(insertionSort(arr)); // [2, 3, 4, 5, 8]

Isih cepat

Isih cepat ialah salah satu algoritma pengisihan yang paling biasa digunakan elemen mengikut Elemen asas dibahagikan kepada dua bahagian, bahagian kiri lebih kecil daripada elemen asas, dan bahagian kanan lebih besar daripada elemen asas, dan kemudian bahagian kiri dan kanan disusun secara rekursif.

Berikut ialah pelaksanaan JavaScript bagi isihan pantas:

function quickSort(arr, left, right) {
  var len = arr.length,
    partitionIndex;
  left = typeof left != "number" ? 0 : left;
  right = typeof right != "number" ? len - 1 : right;

  if (left < right) {
    partitionIndex = partition(arr, left, right);
    quickSort(arr, left, partitionIndex - 1);
    quickSort(arr, partitionIndex + 1, right);
  }
  return arr;
}

function partition(arr, left, right) {
  var pivot = left,
    index = pivot + 1;
  for (var i = index; i <= right; i++) {
    if (arr[i] < arr[pivot]) {
      swap(arr, i, index);
      index++;
    }
  }
  swap(arr, pivot, index - 1);
  return index - 1;
}

function swap(arr, i, j) {
  var temp = arr[i];
  arr[i] = arr[j];
  arr[j] = temp;
}

var arr = [5, 3, 8, 4, 2];
console.log(quickSort(arr)); // [2, 3, 4, 5, 8]

Ringkasan

Di atas ialah beberapa algoritma pengisihan JavaScript yang biasa digunakan, ia adalah isihan gelembung, isihan pemilihan, Isih sisipan dan isihan pantas. Dalam proses pembangunan sebenar, algoritma pengisihan yang berbeza boleh dipilih mengikut senario yang berbeza untuk mencapai hasil yang optimum.

Atas ialah kandungan terperinci Bagaimana untuk mengisih set nombor mengikut susunan saiz dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn