PHP实现数组排序的方法:快速排序,插入排序,归并排序算法
php中对于数组的排序方法是有很多种的,每种数组排序也都有各自不同的原理,下面就来具体看一下关于快速排序算法,归并排序算法以及插入排序算法的示例。
异形数组的遍历
求如下数组中数字的平均值:
$arr1 = array( 1, 2, array(31, 32, 33), 4, array(51, 52, 53, array(541, 542, 543, 544) ), 6, array(71, 72, 73), ); $count = 0; //计数 $sum = GetArraySum($arr1); echo “\
快速排序算法
原理描述:
对于这样一个数组:[5, 1,2, 6,7];
取出第一项(并作为中间数组),并将其余项与其对比后,分为两个数组:
左边数组项比中间项小,右边数组不比中间项小。
如果左边数组和右边数组已经是排好序的数组,则将这3者合并起来,就是最终结果。
如果左边数组和右边数组还不是排好序的数组,则继续递归使用本函数获取有序数组。
原理图:
原理性数据:
$arr1 = [5, 2, 1, 6,7]; //有力说明原理的数据1
小的:[2, 1], 大的:[6, 7], 中间的: [5]
将三者合并: [1, 2, 5, 6, 7];
$arr1 = [2, 1]; //有力说明原理的数据2
中间:[2], 左边:[1] , []
具体案例:
$arr1 = [5, 2, 4, 6, 1, 3]; $arr1 = [5, 2, 4, 6, 1, 3]; //$arr1 = [5, 3, 2, 8, 7]; echo “\
插入排序算法
原理描述:
对于这样一个数组:[2, 3, 4, 1];
要将某个数n插入到一个已经排好序的数组中,
只要将n跟这个数组的项从后往前一个一个对比,只要发现某项比n大,
就将该项后移一位,然后继续往前取出并对比,比n大就往后移动一位,以此类推。
最后没有比n大的时候,就把n放入到刚才往后移动时空出来的那个位置上。
对于一个数组,第1项就可以当做一个“已经排好序”的数组,
则第2项就可以遵照上述原理来进行“插入排序”,于是前两个就可以排好,
并成为了具有两个元素的“排好序的数组”。后续以此类推。
原理图:
原理数据:
$arr1 = [2, 3, 4, 1]; //有力说明原理的数据1
$arr1 = [2, 3, 1]; //有力说明原理的数据2
$arr1 = [2, 1]; //有力说明原理的数据3
$arr1 = [1, 2]; //有力说明原理的数据3
具体案例:
$arr1 = [5, 2, 4, 6, 1, 3]; $arr1 = [2, 3, 4, 1]; $arr1 = [2, 4, 5, 6, 1, 3]; echo “\
归并排序算法
原理描述:
对于这样的一个数组: $arr1 = [1, 3, 5, 2, 4, 6];将其一分为二:$a = [1, 3, 5],
$b = [2, 4, 6];
如果有两个各自已经排好序的数组,则对这两个数组进行如下操作后,就可以获得一个排好序的这两个数组的“溶合数组”:
取出数组a的第一项a1,再取出数组b的第一项b1,比较a1和b1的大小,
并将小的(假设为a1)放入一个新数组,并去删除对应数组a的第一项,
而后再取出对应数组的第一项(不是刚才的那个数据了),而后继续将两者对比大小
每次都放入小的到新数组中,并继续下一次的“删除,取数,对比”。。。。
这样之后最终的结果是,新的数组中就可以得到一个新的排好序的数组。
对于尚未排好序的数组,只要对其以递归方式继续“一分为二”地分割,最终会得到最短数组——只有一个或0个单元,这种数组自然是排好序的了。
原理图:
原理数据:
$arr1 = [1, 3, 5, 4, 6, 7, 8 ]; //有力说明原理的数据1
从中间一份为2: [ ]; [ 6, 7, 8]
[ 1, 3, 4, 5, ]
$arr1 = [1, 3, 2, 4]; //有力说明原理的数据2
演示案例:
$arr1 = [5, 2, 4, 6, 1, 3]; echo “\
相关推荐:
Atas ialah kandungan terperinci PHP实现数组排序的方法:快速排序,插入排序,归并排序算法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Kaedah pengisihan tatasusunan pantas dalam PHP yang mengekalkan nama kunci: Gunakan fungsi ksort() untuk mengisih kekunci. Gunakan fungsi uasort() untuk mengisih menggunakan fungsi perbandingan yang ditentukan pengguna. Kes praktikal: Untuk mengisih tatasusunan ID pengguna dan skor mengikut skor sambil mengekalkan ID pengguna, anda boleh menggunakan fungsi uasort() dan fungsi perbandingan tersuai.

Untuk memahami secara mendalam pengisihan tatasusunan JS: prinsip dan mekanisme kaedah sort(), contoh kod khusus diperlukan Pengenalan: Pengisihan tatasusunan ialah salah satu operasi yang sangat biasa dalam kerja pembangunan bahagian hadapan harian kami. Kaedah pengisihan tatasusunan sort() dalam JavaScript ialah salah satu kaedah pengisihan tatasusunan yang paling biasa digunakan. Walau bagaimanapun, adakah anda benar-benar memahami prinsip dan mekanisme kaedah sort()? Artikel ini akan memberi anda pemahaman yang mendalam tentang prinsip dan mekanisme pengisihan tatasusunan JS, dan memberikan contoh kod khusus. 1. Penggunaan asas kaedah sort().

Cara mengisih tatasusunan mengikut nilai dalam PHP sambil mengekalkan nama kunci ialah menggunakan fungsi usort() untuk mengisih tatasusunan mengikut nilai. Lulus fungsi tanpa nama kepada fungsi usort() sebagai fungsi perbandingan, yang mengembalikan perbezaan nilai elemen. usort() akan mengisih tatasusunan mengikut fungsi tanpa nama sambil mengekalkan nama kunci tidak berubah.

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.

Dalam PHP, gunakan fungsi uasort() untuk mengisih tatasusunan mengikut peraturan pengisihan tersuai sambil mengekalkan nama kunci asal. Fungsi perbandingan tersuai ialah fungsi yang mengambil dua elemen sebagai input dan mengembalikan integer: nombor negatif bermakna yang pertama adalah kurang daripada yang kedua, sifar bermakna ia adalah sama dan nombor positif bermakna yang pertama lebih besar daripada yang kedua.

Algoritma PHP: Bagaimana untuk menggunakan isihan gelembung untuk meningkatkan kecekapan pengisihan tatasusunan? Isih gelembung ialah algoritma pengisihan yang mudah tetapi kurang cekap, tetapi kami boleh meningkatkan kecekapan isihan gelembung melalui beberapa strategi pengoptimuman. Artikel ini akan memperkenalkan cara menggunakan algoritma isihan gelembung dalam PHP untuk mengoptimumkan proses pengisihan tatasusunan dan memberikan contoh kod khusus. Prinsip asas pengisihan gelembung adalah bermula dari elemen pertama tatasusunan setiap kali dan membandingkan saiz dua elemen bersebelahan dalam urutan Jika elemen sebelumnya lebih besar daripada elemen terakhir, kedudukan mereka ditukar. Selepas pusingan perbandingan, perlawanan akhir

Fungsi asort() dalam PHP mengisih tatasusunan mengikut nilai Contoh kod khusus diperlukan PHP ialah bahasa skrip sebelah pelayan yang mempunyai fungsi pemprosesan tatasusunan yang kaya. Antaranya, fungsi asort() adalah fungsi yang sangat berguna, yang boleh menyusun tatasusunan mengikut nilainya. Artikel ini akan memperkenalkan penggunaan fungsi asort() secara terperinci dan memberikan contoh kod tertentu. Fungsi fungsi asort() adalah untuk mengisih tatasusunan dalam tertib menaik mengikut nilai sambil mengekalkan perkaitan antara kunci dan nilai. Ia dilakukan dengan mengubah suai nombor asal

Petua untuk mengoptimumkan pengisihan tatasusunan berbilang dimensi dalam PHP: Cipta fungsi yang ditentukan pengguna untuk pengisihan Gunakan fungsi array_multisort() untuk menggunakan penyusunan semula kunci berbilang dimensi Kes praktikal: Mengisih produk mengikut pasangan nilai kunci tatasusunan
