站長資訊網
最全最豐富的資訊網站

PHP數組學習之使用冒泡算法對元素進行升序排序!

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

首先我們來了解一下什么是冒泡算法(冒泡排序)?

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

思想:

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

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

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

  • 依次循環(huán)操作下去,最終一個元素,會固定在最下邊。

我們使用冒泡算法對數組元素進行升序排序:

有這樣一個數組:

$arr = array('23','4','0','3','2','24','20');

數組有7個元素,因為是實現升序排序,即從小到大排序,因此執(zhí)行步驟:

第一輪循環(huán):

  • 第一個元素23和第二個元素4比,因為23大于4,因此執(zhí)行交換操作

  • 第二個元素(此時為23)和第三個元素0比較,因為23大于0,因此執(zhí)行交換操作—23就變?yōu)榈谌?/p>

  • 第三個元素(此時為23)和第四個元素3比,還是大于,執(zhí)行交換操作—23就變?yōu)榈谒脑?/p>

  • 第四個元素(此時為23)和第五個元素2比,還是大于,執(zhí)行交換操作—23就變?yōu)榈谖逶?/p>

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

  • 第六個元素(此時為24)和第七個元素20比,因為24大于200,執(zhí)行交換操作—24就變?yōu)榈谄咴?/p>

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

此時數組元素為:4、0、3、2、23、20、24

第二輪循環(huán):

  • 第一個元素4和第二個元素0比,因為4大于0,因此執(zhí)行交換操作—4就變?yōu)榈诙?/p>

  • 第二個元素(此時為4)和第三個元素3比較,因為4大于3,因此執(zhí)行交換操作—4就變?yōu)榈谌?/p>

  • 第三個元素(此時為4)和第四個元素2比,還是大于,執(zhí)行交換操作—4就變?yōu)榈谒脑?/p>

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

  • 第五個元素(此時為23)和第六個元素20比,因為23大于20,執(zhí)行交換操作–23就變?yōu)榈诹?/p>

  • 第六個元素(此時為23)和第七個元素24比,小于,因此不執(zhí)行交換操作–第七個元素還是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視頻教程

最后給大家推薦一個PHP數組的免費視頻教程:PHP函數之array數組函數視頻講解,快來學習吧!

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品无码一区二区三区日韩| 九九在线精品视频专区| 久久精品国产亚洲av麻豆图片 | 精品特级一级毛片免费观看| 国产精品入口麻豆完整版| 国产精品高清一区二区三区| 日韩精品一区二区三区大桥未久| 精品无人区一区二区三区在线| 三上悠亚精品二区在线观看| 免费精品国产自产拍观看| 亚洲国产日产无码精品| 亚洲国产另类久久久精品小说| 日韩乱码人妻无码系列中文字幕 | 精品伊人久久久香线蕉| 久久99久久99精品免视看动漫| 国产麻豆剧传媒精品国产AV | www亚洲精品久久久乳| 久久99精品久久久| 国产精品免费看久久久香蕉| 国产成人精品三级麻豆| 国产精品嫩草视频永久网址| 国产精品日本一区二区不卡视频| 精品人成电影在线观看| 女人国产香蕉久久精品| 国产成人精品男人的天堂538 | 91情侣在线精品国产免费| www好男人精品视频在线观看| 99精品全国免费观看视频| 99热这里只有精品免费播放| 国产亚洲精品久久久久秋霞| 人妻少妇精品视频三区二区一区| 久久99精品久久久久久久野外 | 国产日韩精品一区二区三区| 国精品产区WNW2544| 亚洲精品国产啊女成拍色拍| 精品免费视在线观看| 成人国产精品高清在线观看| 国产午夜亚洲精品不卡电影| 无码日韩精品一区二区免费| 一本一本久久aa综合精品| 日韩AV无码精品一二三区|