91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中如何使用冒泡算法對元素進行升序排序

發布時間:2021-08-17 09:49:26 來源:億速云 閱讀:116 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“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

我們看看實現方法:

<?php
//定義一個數組
$arr = array('23','4','0','3','2','24','20');
 
function BubbleSort(array $arr)
{
 
	for ($i=0 ; $i <count($arr) ; $i++) { 
		//設置一個空變量
		$data = '';
		for ($j=$i ; $j < count($arr)-1 ; $j++) { 
			if ($arr[$i] > $arr[$j+1]) {
 
				$data      = $arr[$i]; 
				$arr[$i]   = $arr[$j+1];
				$arr[$j+1] = $data; 
			}
		}
	}
 
	return $arr;
}
echo "<pre>";
print_r(BubbleSort($arr));

輸出結果:

PHP中如何使用冒泡算法對元素進行升序排序

以上是“PHP中如何使用冒泡算法對元素進行升序排序”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

镶黄旗| 新野县| 镇江市| 新晃| 清涧县| 始兴县| 宜君县| 上饶市| 广德县| 普陀区| 民勤县| 射阳县| 晴隆县| 建昌县| 佛冈县| 玉田县| 长汀县| 泽库县| 永泰县| 固镇县| 上思县| 扶绥县| 彭州市| 师宗县| 辉南县| 东光县| 绥中县| 改则县| 革吉县| 兰西县| 江都市| 威宁| 新和县| 靖远县| 南充市| 嘉峪关市| 赣州市| 名山县| 鸡泽县| 海口市| 金湖县|