Rumah pengaturcaraan harian pengetahuan PHP 冒泡排序详细解析

冒泡排序详细解析

May 01, 2020 pm 03:42 PM
1

冒泡排序

对于刚接触编程和算法的朋友来说,对于排序算法可能不太清晰,接下来我们一起来分析下冒泡排序。

冒泡排序的原理是什么了?

遍历一个数组,在此过程中,将相邻的两个单元的值进行比较:如果前面的比后面的大,则将两个值交换位置。这个过程到最后,数组中的最大值一定放在最后位置了。

如果将上述过程再进行一遍,则又可以确定剩余数据中的最大值放在倒数第二的位置。

然后将上述过程继续进行一遍,则可以继续确定剩余数据中的最大值放在倒数第三的位置。

依次类推。。。。。

图示:

原始数组
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!

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

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Agnes Tachyon Build Guide | Musume Derby Pretty
2 minggu yang lalu By Jack chen
Oguri Cap Build Guide | Musume Derby Pretty
3 minggu yang lalu By Jack chen
Puncak: Cara Menghidupkan Pemain
1 bulan yang lalu By DDD
Puncak bagaimana untuk emote
4 minggu yang lalu By Jack chen

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)