PHP 冒泡排序算法的實現(xiàn)代碼
基本概念
冒泡排序的基本概念是:依次比較相鄰的兩個數(shù),將小數(shù)放在前面,大數(shù)放在后面。即首先比較第1 個和第2個數(shù),將小數(shù)放前,大數(shù)放后。然后比較第2個數(shù)和第3個數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個數(shù),將小數(shù)放前,大數(shù)放后。重復(fù)以上過程,仍從第一對數(shù)開始比較(因為可能由于第2個數(shù)和第3個數(shù)的交換,使得第1個數(shù)不再大于第2個數(shù)),將小數(shù)放前,大數(shù)放后,一直比較到最小數(shù)前的一對相鄰數(shù),將小數(shù)放前,大數(shù)放后,第二趟結(jié)束,在倒數(shù)第二個數(shù)中得到一個新的最小數(shù)。如此下去,直至最終完成排序。
由于在排序過程中總是小數(shù)往前放,大數(shù)往后放,相當(dāng)于氣泡往上升,所以稱作冒泡排序。
用二重循環(huán)實現(xiàn),外循環(huán)變量設(shè)為i,內(nèi)循環(huán)變量設(shè)為j。外循環(huán)重復(fù)9次,內(nèi)循環(huán)依次重復(fù) 9,8,…,1次。每次進行比較的兩個元素都是與內(nèi)循環(huán)j有關(guān)的,它們可以分別用a[j]和a[j+1]標識,i的值依次為1,2,…,9,對于每一個i, j的值依次為1,2,…10-i。
產(chǎn)生
在許多程序設(shè)計中,我們需要將一個數(shù)列進行排序,以方便統(tǒng)計,常見的排序方法有冒泡排序,二叉樹排序,選擇排序等等。而冒泡排序一直由于其簡潔的思想方法和比較高的效率而倍受青睞。
排序過程
設(shè)想被排序的數(shù)組R[1..N]垂直豎立,將每個數(shù)據(jù)元素看作有重量的氣泡,根據(jù)輕氣泡不能在重氣泡之下的原則,從下往上掃描數(shù)組R,凡掃描到違反本原則的輕氣泡,就使其向上”漂浮”,如此反復(fù)進行,直至最后任何兩個氣泡都是輕者在上,重者在下為止。
Update 2009-8-18: 更新代碼的錯誤。
$arr = array(345,4,17,6,52,16,58,69,32,8,234);
for($i=1;$i<count($arr);$i++){
for($j=count($arr)-1;$j>=$i;$j--){
if($arr[$j]<$arr[$j-1]){
$temp = $arr[$j-1];
$arr[$j-1] = $arr[$j];
$arr[$j] = $temp;
}
}
}
請使用PHP實現(xiàn)冒泡排序,將數(shù)組$a = array()按照從小到大的方式進行排序
$a=array('3','8','1','4','11','7');
print_r($a);
echo '<br/>';
$len=count($a);
//從小到大
for($i=1;$i<$len;$i++){
for($j=$len-1;$j>=$i;$j--){
if($a[$j]<$a[$j-1]){
$x=$a[$j];
$a[$j]=$a[$j-1];
$a[$j-1]=$x;
}
}
}
PHP 簡單實現(xiàn)冒泡排序
學(xué)習(xí)PHP的時候不敢往算法上靠近。就是怕擾亂自己的思想,現(xiàn)在回顧一下也還真的就那一回事。嘿嘿!各位有沒有遇到這樣子的情況呢?
<?php
#冒泡排序法
$arr = array(12,45,89,3,24,55,223,76,22,11,89,2,4,5,28,112,20,434,23,65,65,765,6,8,23,5,33,553,45,423,64,77,84,23);
$tmp;
for($i=0;$i<count($arr)-1;$i++ ){
for($j=0;$j<count($arr)-1-$i;$j++){
if($arr[$j] > $arr[$j+1]){
$tmp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $tmp;
}
}
}
print_r($arr);
php冒泡排序
$b=array('4','3','8','9','2','1');
$len=count($b);//6
第一種:
for($k=0;$k<=$len;$k++)
{
for($j=$len-1;$j>$k;$j--){
if($b[$j]<$b[$j-1]){
$temp = $b[$j];
$b[$j] = $b[$j-1];
$b[$j-1] = $temp;
}
}
}
第二種:
for($k=1;$k<$len;$k++)
{
for($j=0;$j<$len-$k;$j++){
if($b[$j]>$b[$j+1]){
$temp =$b[$j+1];
$b[$j+1] =$b[$j] ;
$b[$j] = $temp;
}
}
}
相關(guān)文章
php json_encode()函數(shù)返回json數(shù)據(jù)實例代碼
php返回json數(shù)據(jù)用到j(luò)son_encode()函數(shù),此函數(shù)會生成一個標準的json格式的數(shù)據(jù),實例代碼如下2014-10-10
解析php中die(),exit(),return的區(qū)別
本篇文章是對php中die(),exit(),return的區(qū)別進行了詳細的分析介紹,需要的朋友參考下2013-06-06
PHP laravel實現(xiàn)導(dǎo)出PDF功能
有時候我們會需要使用PHP導(dǎo)出pdf。這篇文章主要是記錄一下laravel實現(xiàn)導(dǎo)出PDF的兩種方式。文中的示例代碼講解詳細,需要的可以參考一下2022-10-10
php+MySQL實現(xiàn)登錄時驗證登錄名和密碼是否正確
本文實例實現(xiàn)登錄時去數(shù)據(jù)庫校驗用戶輸入的登錄名和密碼是否正確,這篇文章主要介紹了php+MySQL實現(xiàn)登錄時校驗登錄名和密碼是否正確,感興趣的小伙伴們可以參考一下2016-05-05
PHP函數(shù)http_build_query使用詳解
這篇文章主要介紹了PHP函數(shù)http_build_query使用詳解,分別對傳入一維關(guān)聯(lián)數(shù)組、一維索引數(shù)組、二維數(shù)組、傳入對象等給出示例,需要的朋友可以參考下2014-08-08
PHP中使用glob函數(shù)實現(xiàn)一句話刪除某個目錄下的所有文件
這篇文章主要介紹了PHP中使用glob函數(shù)實現(xiàn)一句話刪除某個目錄下的所有文件,重點在glob函數(shù)的使用上,需要的朋友可以參考下2014-07-07

