中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

青岛市| 华池县| 荣成市| 通化市| 桐梓县| 安新县| 犍为县| 开原市| 长寿区| 姚安县| 剑阁县| 二连浩特市| 尉犁县| 北川| 思南县| 和平县| 大庆市| 包头市| 宜章县| 绵阳市| 台湾省| 威信县| 平南县| 南岸区| 渭南市| 西盟| 绥滨县| 鲁山县| 合江县| 镇雄县| 垣曲县| 奉化市| 英德市| 巫山县| 玉龙| 元江| 剑阁县| 商丘市| 海阳市| 吉林市| 博客|