Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Langkah-langkah pelaksanaan algoritma isihan sisipan dalam PHP

Langkah-langkah pelaksanaan algoritma isihan sisipan dalam PHP

王林
王林asal
2023-07-07 13:40:451378semak imbas

Langkah pelaksanaan algoritma isihan sisipan dalam PHP

Isihan sisipan ialah algoritma pengisihan yang mudah dan intuitif Ia membina urutan tersusun dan memasukkan data yang tidak diisih satu demi satu untuk mendapatkan urutan tersusun. Dalam PHP, kita boleh melaksanakan algoritma isihan sisipan melalui langkah-langkah berikut.

Langkah 1: Tentukan insertionSort fungsi, yang menerima tatasusunan untuk diisih sebagai parameter.

function insertionSort($arr) {
  $n = count($arr);
  for ($i = 1; $i < $n; $i++) {
    $key = $arr[$i];
    $j = $i - 1;

    while ($j >= 0 && $arr[$j] > $key) {
      $arr[$j + 1] = $arr[$j];
      $j = $j - 1;
    }
    $arr[$j + 1] = $key;
  }

  return $arr;
}

Langkah 2: Panggil fungsi insertionSort dalam program utama dan lulus dalam tatasusunan untuk diisih.

$unsortedArray = [5, 2, 1, 7, 3];
$sortedArray = insertionSort($unsortedArray);

Langkah 3: Tentukan gelung for untuk mengeluarkan tatasusunan yang diisih.

$n = count($sortedArray);
for ($i = 0; $i < $n; $i++) {
  echo $sortedArray[$i] . " ";
}

Kod lengkap adalah seperti berikut:

Kod di atas melaksanakan algoritma isihan sisipan. Idea teras algoritma adalah untuk membahagikan tatasusunan untuk diisih kepada dua bahagian, diisih dan tidak diisih, dan mendapatkan hasil tersusun dengan memasukkan elemen yang tidak diisih ke dalam bahagian yang diisih satu demi satu. Dalam kod, kami menggunakan gelung for untuk melintasi tatasusunan yang hendak diisih dan memasukkan elemen semasa ke kedudukan yang sesuai. Gelung while dalam digunakan untuk terus membandingkan dan menggerakkan elemen bahagian yang diisih sehingga kedudukan yang sesuai ditemui.

Kerumitan masa bagi algoritma isihan sisipan ialah O(n^2), dengan n mewakili panjang tatasusunan yang hendak diisih. Memandangkan algoritma hanya melibatkan operasi perbandingan dan pergerakan elemen bersebelahan, kerumitan ruang ialah O(1) dan ia adalah algoritma pengisihan di tempat.

Ringkasan: Melalui langkah di atas, kami berjaya melaksanakan algoritma isihan sisipan dalam PHP. Algoritma ini mudah dan berkesan serta sesuai untuk menyusun data berskala kecil. Dalam aplikasi praktikal, jika tatasusunan yang hendak diisih adalah besar atau prestasi yang lebih tinggi diperlukan, algoritma pengisihan lain yang lebih pantas boleh dipertimbangkan.

Atas ialah kandungan terperinci Langkah-langkah pelaksanaan algoritma isihan sisipan dalam PHP. 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