Dalam artikel sebelumnya "Pembelajaran Tatasusunan PHP: Mengembalikan Semua Faktor Sepunya dan Faktor Sepunya Terbesar antara Dua Nombor Diberi", kami memperkenalkan penggunaan kaedah tatasusunan untuk mengembalikan dua integer yang diberi a dan b Semua sepunya faktor dan kaedah faktor sepunya terbesar. Kali ini kita akan mengkaji tatasusunan PHP dan memperkenalkan cara melaksanakan pengisihan gelembung menggunakan PHP dan cara mengisih elemen tatasusunan dalam tertib menaik menggunakan algoritma gelembung.
Pertama sekali, mari kita fahami Apakah algoritma gelembung (isih gelembung)?
Isih Buih (Isih Buih) adalah kerana unsur-unsur yang lebih kecil akan perlahan-lahan "terapung" ke bahagian atas jujukan melalui pertukaran (disusun dalam tertib menaik atau menurun), sama seperti gelembung karbon dioksida dalam berkarbonat minuman Akhirnya ia akan terapung ke atas, maka nama "bubble sort".
Idea:
Bandingkan dua elemen bersebelahan, jika syarat dipenuhi (yang pertama lebih besar daripada yang kedua, atau yang pertama lebih besar daripada kedua-duanya kecil), tukarkannya, jika tidak, mereka tidak akan bergerak.
Kemudian bandingkan dua elemen bersebelahan seterusnya, dan kemudian tukarkannya jika syarat dipenuhi, jika tidak, ia akan kekal tidak berubah.
Hanya lakukan perkara yang sama untuk setiap pasangan elemen bersebelahan, bermula dengan pasangan pertama pada permulaan dan berakhir dengan pasangan terakhir pada akhir. Elemen terakhir hendaklah nombor terbesar (terkecil).
Teruskan operasi gelung dalam urutan, dan elemen akhir akan dibetulkan di bahagian bawah.
Kami menggunakan algoritma gelembung untuk mengisih elemen tatasusunan dalam tertib menaik:
Terdapat tatasusunan sedemikian:
$arr = array('23','4','0','3','2','24','20');
Tatasusunan mempunyai 7 elemen, kerana ia dilaksanakan dalam tertib menaik, iaitu, diisih dari kecil ke besar, jadi langkah pelaksanaan adalah:
Pusingan pertama gelung:
Elemen pertama 23 dan kedua Elemen kedua (23 pada masa ini) dibandingkan dengan elemen ketiga 0, kerana 23 lebih besar daripada 0, jadi Lakukan operasi pertukaran---23 menjadi elemen ketiga
Elemen ketiga (23 pada masa ini) masih lebih besar daripada elemen keempat 3, lakukan operasi pertukaran- --23 menjadi elemen keempat
Jika elemen keempat (23 pada masa ini) masih lebih besar daripada elemen kelima 2, lakukan operasi swap---23 menjadi Menjadi elemen kelima
Nisbah kelima elemen (23 pada masa ini) kepada elemen keenam 24, kerana 23 adalah kurang daripada 24, jadi tiada operasi pertukaran dilakukan - elemen keenam Elemen masih 24
Elemen keenam (24 pada masa ini) dan elemen ketujuh ialah 20, kerana 24 lebih besar daripada 200, lakukan operasi swap---24 menjadi elemen ketujuh Selepas pusingan perbandingan kitaran unsur
, bilangan terbesar akan tenggelam ke bawah. Nombor kecil secara beransur-ansur muncul ke atas.
Kitaran kedua:
Pertama nisbah elemen pertama 4 kepada elemen kedua 0, kerana 4 lebih besar daripada 0, jadi operasi swap dilakukan---4 menjadi elemen kedua
elemen kedua (ini masa ialah 4) Bandingkan dengan elemen ketiga 3, kerana 4 lebih besar daripada 3, jadi lakukan operasi swap---4 menjadi elemen ketiga
elemen ketiga (kali ini ia ialah 4 ) masih lebih besar daripada elemen keempat 2, lakukan operasi swap---4 menjadi elemen keempat
elemen keempat (kali ini ialah 4) dan yang kelima Nisbah daripada elemen hingga 23 adalah kerana 4 kurang daripada 23, jadi tiada operasi pertukaran dilakukan---elemen kelima masih 23
elemen kelima (23 pada masa ini) dan nisbah elemen keenam 20, kerana 23 lebih besar daripada 20, lakukan operasi pertukaran - 23 menjadi elemen keenam
Elemen keenam (kali ini ialah 23) dan nisbah elemen ketujuh 24, Kurang daripada, jadi tiada operasi pertukaran dilakukan - elemen ketujuh masih 24
Pada masa ini, elemen tatasusunan ialah: 0, 3, 2, 4, 20, 23, 24
Dan seterusnya, elemen tatasusunan akhir ialah: 0, 2, 3, 4, 20, 23, 24
Mari kita lihat pada kaedah pelaksanaan:
Hasil keluaran:$arr[$j+1]) { $data = $arr[$i]; $arr[$i] = $arr[$j+1]; $arr[$j+1] = $data; } } } return $arr; } echo ""; print_r(BubbleSort($arr));Salin selepas log masuk
Tutorial video php
Akhir sekali, saya mengesyorkan tutorial video percuma tentang tatasusunan PHP: Penjelasan video fungsi tatasusunan fungsi PHP, datang dan pelajari!
Atas ialah kandungan terperinci Pembelajaran tatasusunan PHP menggunakan algoritma gelembung untuk mengisih elemen dalam tertib menaik!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!