Rumah >pembangunan bahagian belakang >tutorial php >Apakah prinsip dan pelaksanaan algoritma isihan sisipan dalam PHP?

Apakah prinsip dan pelaksanaan algoritma isihan sisipan dalam PHP?

王林
王林asal
2023-09-20 12:49:431522semak imbas

Apakah prinsip dan pelaksanaan algoritma isihan sisipan dalam PHP?

Prinsip dan pelaksanaan algoritma isihan sisipan dalam PHP

Isihan sisipan ialah algoritma pengisihan biasa ialah untuk memasukkan unsur ke dalam urutan yang telah disusun mengikut saiznya. Dalam PHP, kita boleh melaksanakan algoritma isihan sisipan melalui pertukaran berangka mudah. Artikel ini akan memperkenalkan prinsip dan pelaksanaan isihan sisipan secara terperinci, dan memberikan contoh kod khusus.

Prinsip:

  1. Pilih elemen daripada urutan yang tidak diisih dan masukkannya ke dalam kedudukan yang sesuai bagi urutan yang diisih.
  2. Tentukan di mana elemen harus disisipkan dengan membandingkan elemen yang akan disisipkan dengan elemen dalam urutan yang disusun.
  3. Ulang langkah 1 dan 2 sehingga urutan yang tidak diisih kosong.

Kaedah pelaksanaan:
Berikut ialah contoh kod untuk melaksanakan algoritma isihan sisipan dalam PHP:

function insertionSort($array)
{
    $length = count($array);

    for ($i = 1; $i < $length; $i++) {
        $key = $array[$i];
        $j = $i - 1;

        // 将当前元素与已排序序列中的元素比较,找到合适的插入位置
        while ($j >= 0 && $array[$j] > $key) {
            $array[$j + 1] = $array[$j];
            $j--;
        }

        $array[$j + 1] = $key;
    }

    return $array;
}

// 示例用法
$data = [4, 2, 7, 1, 9, 5];
$sortedData = insertionSort($data);
print_r($sortedData);

Dalam kod di atas, fungsi insertionSort menerima tatasusunan sebagai parameter dan mengembalikan yang disusun tatasusunan. Semasa proses pengisihan, kami menggunakan pembolehubah $key untuk menyimpan elemen semasa yang hendak disisipkan Dalam setiap perbandingan, elemen yang lebih besar daripada elemen dalam urutan yang diisih dialihkan satu kedudukan ke kanan sehingga a yang sesuai didapati kedudukan sisipan. insertionSort函数接受一个数组作为参数,并返回一个排序后的数组。在排序过程中,我们使用一个$key变量保存当前待插入的元素,在每次比较中,将已排序序列中大于该元素的元素向右移动一位,直到找到合适的插入位置。

示例用法中,我们定义了一个待排序的数组$data,并将其传递给insertionSort函数。最后,通过print_r($sortedData)

Dalam contoh penggunaan, kami mentakrifkan tatasusunan $data untuk diisih dan menghantarnya ke fungsi insertionSort. Akhir sekali, cetak hasil yang diisih melalui print_r($sortedData).


Ringkasan:

Isihan sisipan ialah algoritma pengisihan yang mudah tetapi cekap. Dengan memasukkan elemen ke dalam urutan yang diisih satu demi satu, anda boleh mendapatkan urutan tertib dengan cepat. Dalam PHP, kita boleh melaksanakan algoritma isihan sisipan menggunakan pertukaran berangka mudah. Saya harap artikel ini akan membantu dalam memahami prinsip dan pelaksanaan jenis sisipan. 🎜

Atas ialah kandungan terperinci Apakah prinsip dan 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