又一個(gè)PHP實(shí)現(xiàn)的冒泡排序算法分享
經(jīng)典的冒泡排序法一直是許多程序沿用的其中一種排序法,話說冒泡排序法在效率上比PHP系統(tǒng)函數(shù)sort更高效。本章不討論性能,所以就不拿它來跟系統(tǒng)性能做對(duì)比了。
冒泡排序大概的意思是依次比較相鄰的兩個(gè)數(shù),然后根據(jù)大小做出排序,直至最后兩位數(shù)。由于在排序過程中總是小數(shù)往前放,大數(shù)往后放,相當(dāng)于氣泡往上升,所以稱作冒泡排序。但其實(shí)在實(shí)際過程中也可以根據(jù)自己需要反過來用,大樹往前放,小數(shù)往后放。
<?php
/**
* PHP中的冒泡排序法使用
*/
// 預(yù)先聲明一個(gè)數(shù)組
$arr = array (12,45,28,30,88,67);
echo "原數(shù)組";
print_r($arr);
echo "<br/>";
//冒泡排序
function maopao($arr){
// 進(jìn)行第一層遍歷
for($i=0,$k=count($arr);$i<$k;$i++) {
// 進(jìn)行第二層遍歷 將數(shù)組中每一個(gè)元素都與外層元素比較
// 這里的i+1意思是外層遍歷當(dāng)前元素往后的
for ($j=$i+1;$j<$k;$j++) {
// 內(nèi)外層兩個(gè)數(shù)比較
if($arr[$i]<$arr[$j]){
// 先把其中一個(gè)數(shù)組賦值給臨時(shí)變量
$temp = $arr[$j];
// 交換位置
$arr[$j] = $arr[$i];
// 再從臨時(shí)變量中賦值回來
$arr[$i] = $temp;
}
}
}
// 返回排序后的數(shù)組
return $arr;
}
// 直接打印排序后的數(shù)組
echo '排序后';
print_r(maopao($arr));
?>
通過以上代碼執(zhí)行結(jié)果
原數(shù)組
排序后
這就是冒泡法實(shí)例,簡(jiǎn)單吧!沒有神馬難度的。
相關(guān)文章
php array_values 返回?cái)?shù)組的值實(shí)例詳解
php array_values 函數(shù)用于返回?cái)?shù)組中所有的值,注意該函數(shù)將為新數(shù)組建立數(shù)組索引,原來的文字索引將不存在。本文章向大家講解array_values函數(shù)的基本語法及使用實(shí)例,需要的朋友可以參考下2016-11-11
thinkphp制作404跳轉(zhuǎn)頁的簡(jiǎn)單實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猼hinkphp制作404跳轉(zhuǎn)頁的簡(jiǎn)單實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09
php+ajax實(shí)現(xiàn)無刷新文件上傳功能(ajaxuploadfile)
這篇文章主要為大家詳細(xì)介紹了php結(jié)合ajaxuploadfile實(shí)現(xiàn)無刷新文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
PHP全局變量中的global與$GLOBALS的區(qū)別和用法小結(jié)
這篇文章主要介紹了PHP全局變量中的global與$GLOBALS的區(qū)別和用法小結(jié),global的作用就相當(dāng)于傳遞參數(shù),在函數(shù)外部聲明的變量,如果在函數(shù)內(nèi)想要使用,就用global來聲明該變量,這樣就相當(dāng)于把該變量傳遞進(jìn)來了,就可以引用該變量了,需要的朋友可以參考下2023-10-10
php使用多個(gè)進(jìn)程同時(shí)控制文件讀寫示例
這篇文章主要介紹了php使用多個(gè)進(jìn)程同時(shí)控制文件讀寫示例,需要的朋友可以參考下2014-02-02

