Mari kita bincangkan tentang kaedah pengisihan yang biasa digunakan (algoritma) dalam PHP

PHPz
Lepaskan: 2023-03-24 16:00:01
asal
1424 orang telah melayarinya

Sebagai bahasa pengaturcaraan yang penting, PHP sebenarnya berprestasi baik dalam banyak aspek. Dalam pemprosesan data, algoritma pengisihan adalah bahagian yang paling biasa dan penting. PHP menyediakan pelbagai algoritma pengisihan Berikut adalah pengenalan terperinci kepada kaedah pengisihan yang biasa digunakan dalam PHP.

  1. Isih gelembung

Isih gelembung ialah salah satu algoritma pengisihan paling klasik dalam PHP. Algoritma ini melengkapkan pengisihan dengan merentasi dan membandingkan saiz dua elemen bersebelahan, dan kemudian menukar pesanan secara berterusan. Kaedah ini boleh dilaksanakan menggunakan gelung for atau gelung while.

<?php
function bubble_sort($arr){
    $length = count($arr);
    for($i=0;$i<$length;$i++){
        for($j=$i+1;$j<$length;$j++){
            if($arr[$i]>$arr[$j]){
                $tmp = $arr[$i];
                $arr[$i] = $arr[$j];
                $arr[$j] = $tmp;
            }
        }
    }
    return $arr;
}
Salin selepas log masuk
  1. Isih Pantas

Isih Pantas ialah salah satu algoritma pengisihan terpantas dalam PHP. Algoritma ini menggunakan kaedah rekursif untuk membahagi tatasusunan kepada dua bahagian, menggunakan satu elemen pangsi pada satu masa untuk membahagi tatasusunan kepada subarray yang lebih kecil dan lebih besar. Selepas itu, sub-tatasusunan terus diisih secara rekursif, dan akhirnya tatasusunan yang diisih diperolehi.

Terdapat banyak cara untuk melaksanakan isihan pantas dalam PHP, seperti kaedah rekursif dan bukan rekursif.

<?php
function quick_sort($arr){
    $length = count($arr);
    if($length<=1){
        return $arr;
    }
    $left_array = array();
    $right_array = array();
    $middle = $arr[0];
    for($i=1;$i<$length;$i++){
        if($arr[$i]<$middle){
            $left_array[] = $arr[$i];
        }else{
            $right_array[] = $arr[$i];
        }
    }
    $left_array = quick_sort($left_array);
    $right_array = quick_sort($right_array);
    return array_merge($left_array, array($middle), $right_array);
}
Salin selepas log masuk
  1. Isih pilihan

Isihan pilihan ialah satu lagi algoritma pengisihan klasik dalam PHP. Algoritma ini berfungsi dengan mencari elemen terkecil dalam tatasusunan dan meletakkannya di hadapan tatasusunan, kemudian melakukan perkara yang sama untuk elemen yang tinggal. Kerumitan masa algoritma ini ialah O(n²).

<?php
function select_sort($arr){
    $length = count($arr);
    for($i=0;$i<$length;$i++){
        $min = $i;
        for($j=$i+1;$j<$length;$j++){
            if($arr[$j]<$arr[$min]){
                $min = $j;
            }
        }
        if($min!=$i){
            $tmp = $arr[$i];
            $arr[$i] = $arr[$min];
            $arr[$min] = $tmp;
        }
    }
    return $arr;
}
Salin selepas log masuk
  1. Isih sisipan

Isihan sisipan ialah satu lagi algoritma pengisihan mudah dalam PHP. Algoritma ini membandingkan saiz dan kedudukan elemen semasa dengan elemen yang diisih sebelum ini, dan kemudian memasukkan elemen ke kedudukan yang sesuai. Kerumitan masa algoritma ini ialah O(n²).

<?php
function insert_sort($arr){
    $length = count($arr);
    for($i=1;$i<$length;$i++){
        $tmp = $arr[$i];
        $j = $i-1;
        while($j>=0 && $arr[$j]>$tmp){
            $arr[$j+1] = $arr[$j];
            $j--;
        }
        $arr[$j+1] = $tmp;
    }
    return $arr;
}
Salin selepas log masuk

Ringkasan:

Empat kaedah pengisihan di atas ialah algoritma pengisihan biasa dalam PHP. Dalam aplikasi praktikal, isihan pemilihan dan isihan sisipan biasanya digunakan untuk mengisih sejumlah kecil data, isihan gelembung lebih biasa digunakan apabila saiz data kecil, dan isihan pantas ialah algoritma pengisihan yang paling biasa digunakan apabila saiz data adalah besar. Pembangun boleh memilih algoritma pengisihan yang sesuai berdasarkan situasi sebenar.

Atas ialah kandungan terperinci Mari kita bincangkan tentang kaedah pengisihan yang biasa digunakan (algoritma) dalam 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!