Panduan untuk menulis algoritma pengisihan tersuai untuk tatasusunan PHP

WBOY
Lepaskan: 2024-04-27 18:12:01
asal
544 orang telah melayarinya

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;
            }
        }
    }
}
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

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

$arr = [5, 2, 8, 3, 1];
Salin selepas log masuk

Panggil fungsi isihan gelembung:

bubbleSort($arr);
Salin selepas log masuk

Tatasusunan yang diisih:

[1, 2, 3, 5, 8]
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!