冒泡排序详细解析
冒泡排序
对于刚接触编程和算法的朋友来说,对于排序算法可能不太清晰,接下来我们一起来分析下冒泡排序。
冒泡排序的原理是什么了?
遍历一个数组,在此过程中,将相邻的两个单元的值进行比较:如果前面的比后面的大,则将两个值交换位置。这个过程到最后,数组中的最大值一定放在最后位置了。
如果将上述过程再进行一遍,则又可以确定剩余数据中的最大值放在倒数第二的位置。
然后将上述过程继续进行一遍,则可以继续确定剩余数据中的最大值放在倒数第三的位置。
依次类推。。。。。
图示:
| 原始数组 |
18 | 22 | 12 |
15 | 23 | 9 |
| 第一趟 | 18 |
22 | 12 | 15 | 9 | 23 |
| 第二趟 | 18 | 22 | 12 | 9 | 15 | 23 |
| 第三趟 | 18 | 22 | 9 | 12 | 15 | 23 |
| 第四趟 | 18 | 9 | 12 | 15 | 22 | 23 |
| 第五趟 | 9 | 12 | 15 | 18 | 22 | 23 |
代码演示:
$arr1 = array(18,22,12,15,23,9);
$n = count($arr1);
//控制要进行的躺数
for($i = 0;$i < $n-1;$i++){
//在每一趟里面,控制进行比较的次数
for($k = 0;$k < $n-1-$i;$k++){
if ($arr1[$k] > $arr1[$k+1]) {
$temp = $arr1[$k];
$arr1[$k] = $arr1[$k+1];
$arr1[$k+1] = $temp;
}
}
}最后让我们来总结一下规律:
1.要进行从头到尾两两比较并进行交换位置的趟数为$n-1趟,$n是总个数(数组长度)
2.每次都对相邻的两个数据进行大小比较,如果需要,就交换他们的位置!
3.每趟要比较的次数都比前一趟少1次,第一趟要比较的次数为:$n-1
Atas ialah kandungan terperinci 冒泡排序详细解析. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Alat AI Hot
Undress AI Tool
Gambar buka pakaian secara percuma
Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik
AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.
Clothoff.io
Penyingkiran pakaian AI
Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!
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)

