Jadual Kandungan
异形数组的遍历" >异形数组的遍历
快速排序算法" >快速排序算法
插入排序算法" >插入排序算法
归并排序算法" >归并排序算法
Rumah pembangunan bahagian belakang tutorial php PHP实现数组排序的方法:快速排序,插入排序,归并排序算法

PHP实现数组排序的方法:快速排序,插入排序,归并排序算法

Jul 19, 2018 pm 02:20 PM
Susun susunan

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 “\
Salin selepas log masuk

快速排序算法

原理描述:

对于这样一个数组:[5, 1,2, 6,7];

取出第一项(并作为中间数组),并将其余项与其对比后,分为两个数组:

左边数组项比中间项小,右边数组不比中间项小。

如果左边数组和右边数组已经是排好序的数组,则将这3者合并起来,就是最终结果。

如果左边数组和右边数组还不是排好序的数组,则继续递归使用本函数获取有序数组。

原理图:

QQ截图20180719140656.png

原理性数据:

$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 “\
Salin selepas log masuk

插入排序算法

原理描述:

对于这样一个数组:[2, 3, 4, 1];

要将某个数n插入到一个已经排好序的数组中,

只要将n跟这个数组的项从后往前一个一个对比,只要发现某项比n大,

就将该项后移一位,然后继续往前取出并对比,比n大就往后移动一位,以此类推。

最后没有比n大的时候,就把n放入到刚才往后移动时空出来的那个位置上。

对于一个数组,第1项就可以当做一个“已经排好序”的数组,

则第2项就可以遵照上述原理来进行“插入排序”,于是前两个就可以排好,

并成为了具有两个元素的“排好序的数组”。后续以此类推。

原理图:

QQ截图20180719140722.png

原理数据:

$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 “\
Salin selepas log masuk

归并排序算法

原理描述:

对于这样的一个数组: $arr1 = [1, 3, 5, 2, 4, 6];将其一分为二:$a = [1, 3, 5],
$b = [2, 4, 6];

如果有两个各自已经排好序的数组,则对这两个数组进行如下操作后,就可以获得一个排好序的这两个数组的“溶合数组”:

取出数组a的第一项a1,再取出数组b的第一项b1,比较a1和b1的大小,

并将小的(假设为a1)放入一个新数组,并去删除对应数组a的第一项,

而后再取出对应数组的第一项(不是刚才的那个数据了),而后继续将两者对比大小

每次都放入小的到新数组中,并继续下一次的“删除,取数,对比”。。。。

这样之后最终的结果是,新的数组中就可以得到一个新的排好序的数组。

对于尚未排好序的数组,只要对其以递归方式继续“一分为二”地分割,最终会得到最短数组——只有一个或0个单元,这种数组自然是排好序的了。

原理图:

QQ截图20180719140740.png

原理数据:

$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 “\
Salin selepas log masuk

相关推荐:

php 冒泡排序 快速排序,php冒泡排序

php 数组排序方法分享(冒泡排序、选择排序)

Atas ialah kandungan terperinci PHP实现数组排序的方法:快速排序,插入排序,归并排序算法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kaedah pengisihan tatasusunan pantas yang mengekalkan nama kunci dalam PHP Kaedah pengisihan tatasusunan pantas yang mengekalkan nama kunci dalam PHP May 02, 2024 pm 03:06 PM

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.

Pengisihan tatasusunan JS: analisis mendalam tentang prinsip kerja dan mekanisme kaedah sort(). Pengisihan tatasusunan JS: analisis mendalam tentang prinsip kerja dan mekanisme kaedah sort(). Dec 28, 2023 am 11:47 AM

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().

Bagaimana untuk mengekalkan nama kunci selepas menyusun tatasusunan PHP mengikut nilai? Bagaimana untuk mengekalkan nama kunci selepas menyusun tatasusunan PHP mengikut nilai? May 02, 2024 pm 04:09 PM

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.

Panduan untuk menulis algoritma pengisihan tersuai untuk tatasusunan PHP Panduan untuk menulis algoritma pengisihan tersuai untuk tatasusunan PHP Apr 27, 2024 pm 06:12 PM

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.

Isih tatasusunan mengikut peraturan pengisihan tersuai dalam PHP, mengekalkan nama kunci asal Isih tatasusunan mengikut peraturan pengisihan tersuai dalam PHP, mengekalkan nama kunci asal May 04, 2024 am 09:27 AM

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? Algoritma PHP: Bagaimana untuk menggunakan isihan gelembung untuk meningkatkan kecekapan pengisihan tatasusunan? Sep 19, 2023 am 10:28 AM

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 menyusun tatasusunan mengikut nilai fungsi asort() dalam PHP menyusun tatasusunan mengikut nilai Nov 18, 2023 am 10:56 AM

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 pengisihan berbilang dimensi tatasusunan PHP: Mengoptimumkan kecekapan pengisihan Petua untuk pengisihan berbilang dimensi tatasusunan PHP: Mengoptimumkan kecekapan pengisihan Apr 30, 2024 am 09:54 AM

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

See all articles