Rumah >pembangunan bahagian belakang >tutorial php >Panduan untuk menulis algoritma pengisihan tersuai untuk tatasusunan PHP

Panduan untuk menulis algoritma pengisihan tersuai untuk tatasusunan PHP

WBOY
WBOYasal
2024-04-27 18:12:01590semak imbas

Bagaimana untuk menulis algoritma pengisihan tatasusunan PHP tersuai? Isih gelembung: Mengisih tatasusunan dengan membandingkan dan menukar elemen bersebelahan. Isih pilihan: Pilih elemen terkecil atau terbesar setiap kali dan tukarkannya dengan kedudukan semasa. Isih sisipan: Masukkan unsur satu demi satu ke dalam bahagian yang diisih.

PHP 数组自定义排序算法的编写指南

Panduan menulis algoritma pengisihan tersuai untuk tatasusunan PHP

Pengenalan
Pengisihan tatasusunan ialah tugas biasa dalam pengaturcaraan yang membolehkan kami menyusun semula elemen dalam tatasusunan berdasarkan kriteria tertentu. PHP menyediakan pelbagai algoritma pengisihan terbina dalam, tetapi kadangkala kita perlu mengisih tatasusunan berdasarkan logik tersuai, yang memerlukan kita menulis algoritma pengisihan tersuai kita sendiri.

Isih Buih
Isih Buih ialah algoritma pengisihan mudah yang mengisih tatasusunan dengan berulang kali membandingkan elemen bersebelahan dan menukar kedudukannya.

function bubbleSort(array &$arr) {
    $n = count($arr);
    for ($i = 0; $i < $n - 1; $i++) {
        for ($j = 0; $j < $n - $i - 1; $j++) {
            if ($arr[$j] > $arr[$j + 1]) {
                $tmp = $arr[$j];
                $arr[$j] = $arr[$j + 1];
                $arr[$j + 1] = $tmp;
            }
        }
    }
}

Isih pilihan
Isih pilihan ialah algoritma pengisihan berdasarkan pemilihan elemen terkecil atau terbesar dan menukarnya dengan kedudukan semasanya.

function selectionSort(array &$arr) {
    $n = count($arr);
    for ($i = 0; $i < $n - 1; $i++) {
        $min_idx = $i;
        for ($j = $i + 1; $j < $n; $j++) {
            if ($arr[$j] < $arr[$min_idx]) {
                $min_idx = $j;
            }
        }

        $tmp = $arr[$i];
        $arr[$i] = $arr[$min_idx];
        $arr[$min_idx] = $tmp;
    }
}

Isihan sisipan
Isihan sisipan ialah algoritma pengisihan berdasarkan memasukkan elemen satu demi satu ke dalam bahagian yang tersusun.

function insertionSort(array &$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--;
        }

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

Kes praktikal
Mari kita mengisih tatasusunan PHP berikut dalam tertib menaik menggunakan algoritma isihan gelembung:

$arr = [5, 2, 8, 3, 1];

Panggil fungsi isihan gelembung:

bubbleSort($arr);

Tatasusunan yang diisih:

[1, 2, 3, 5, 8]

Atas ialah kandungan terperinci Panduan untuk menulis algoritma pengisihan tersuai untuk tatasusunan 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