PHP陣列學習之使用冒泡演算法對元素進行升序排序!

青灯夜游
發布: 2023-03-12 07:00:01
原創
3038 人瀏覽過

在先前的文章《PHP數組學習之返回給定兩數組的全部公因數和最大公因數》中,我們介紹了利用數組方法返回給定兩個整數a和b間的全部公因數和最大公因數的方法。這次我們進行PHP陣列的學習,介紹利用PHP如何實現冒泡排序,使用冒泡演算法怎麼對陣列元素進行升序排序。

首先我們來了解什麼是冒泡演算法(冒泡排序)?

冒泡排序(Bubble Sort),是因為越小的元素會經由交換慢慢「浮」到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最後會上浮到頂端一樣,故名「冒泡排序」。

思想:

  • 比較相鄰的兩個元素,如果滿足條件(第一個比第二個大,或第一個比第二個小),就交換,否則不動。

  • 再比較接下來的兩個相鄰的元素,然後滿足條件就交換,否則依然不動。

  • 就這樣對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。直到最後的元素應該會是最大(最小)的數。

  • 依序循環操作下去,最終一個元素,會固定在最下邊。

我們使用冒泡演算法對陣列元素進行升序排序:

#有這樣一個陣列:

$arr = array('23','4','0','3','2','24','20');
登入後複製

陣列有7個元素,因為是實現升序排序,即從小到大排序,因此執行步驟:

第一輪循環:

  • 第一個元素23和第二個元素4比,因為23大於4,因此執行交換操作

  • 第二個元素(此時為23)和第三個元素0比較,因為23大於0,因此執行交換操作---23就變成第三元素

  • 第三個元素(此時為23)和第四個元素3比,還是大於,執行交換操作--- 23就變成第四元素

  • 第四個元素(此時為23)和第五個元素2比,還是大於,執行交換運算---23就變成第五元素

  • 第五個元素(此時為23)和第六個元素24比,因為23小於24,因此不執行交換操作--第六個元素還是24

  • 第六個元素(此時為24)和第七個元素20比,因為24大於200,執行交換運算---24就變成第七元素

經過一輪的循環對比,最大的數字就下沉到最下邊了。小的數字逐漸向上浮出。

此時陣列元素為:4、0、3、2、23、20、24

第二輪循環:

  • 第一個元素4和第二個元素0比,因為4大於0,因此執行交換操作---4就變成第二元素

  • 第二個元素(此時為4)和第三個元素3比較,因為4大於3,因此執行交換操作---4就變成第三元素

  • 第三個元素(此時為4 )和第四個元素2比,還是大於,執行交換操作---4就變成第四元素

  • 第四個元素(此時為4)和第五個元素23比,因為4小於23,因此不執行交換操作---第五元素還是23

  • 第五個元素(此時為23)與第六個元素20比,因為23大於20,執行交換操作--23就變成第六元素

  • 第六個元素(此時為23)與第七個元素24比,小於,因此不執行交換操作--第七個元素還是24

此時陣列元素為:0、3、2、4、20、23、24

.....

以此類推,最後數組元素為:0、2、3、4、20、23、24

我們來看看實作方法:

 $arr[$j+1]) {
 
				$data      = $arr[$i]; 
				$arr[$i]   = $arr[$j+1];
				$arr[$j+1] = $data; 
			}
		}
	}
 
	return $arr;
}
echo "
";
print_r(BubbleSort($arr));
登入後複製

輸出結果:

PHP陣列學習之使用冒泡演算法對元素進行升序排序!

好了就說到這裡了,有其他想知道的,可以點擊這個哦。 → →php影片教學

最後推薦給大家一個PHP陣列的免費影片教學:PHP函數之array陣列函數影片講解,快來學習吧!

以上是PHP陣列學習之使用冒泡演算法對元素進行升序排序!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!