php冒泡排序與快速排序?qū)嵗斀?/h1>
更新時(shí)間:2015年12月07日 09:55:23 作者:流星飛雨
這篇文章主要介紹了php冒泡排序與快速排序?qū)崿F(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了phpphp排序算法的遞歸、遍歷運(yùn)算及流程控制的相關(guān)技巧,需要的朋友可以參考下
本文實(shí)例分析了php冒泡排序與快速排序算法。分享給大家供大家參考,具體如下:
$a=array('3','8','1','4','11','7');
print_r($a);
$len = count($a);
//從小到大
for($i=1;$i<$len;$i++)
{
for($j=$len-1;$j>=$i;$j--)
if($a[$j]<$a[$j-1])
{//如果是從大到小的話,只要在這里的判斷改成if($b[$j]>$b[$j-1])就可以了
$x=$a[$j];
$a[$j]=$a[$j-1];
$a[$j-1]=$x;
}
}
print_r($a);j
//另一種方法 從小到大
$b=array('4','3','8','9','2','1');
$len=count($b);
for($k=1;$k<$len;$k++)
{
for($j=$len-1,$i=0;$i<$len-$k;$i++,$j--)
if($b[$j]<$b[$j-1]){
//如果是從大到小的話,只要在這里的判斷改成if($b[$j]>$b[$j-1])就可以了
$tmp=$b[$j];
$b[$j]=$b[$j-1];
$b[$j-1]=$tmp;
}
print_r($b);
echo "
";
}
//下面的這個(gè)執(zhí)行效率更高
function maopao($arr)
{
$len = count($arr);
for($i=1; $i<$len; $i++)//最多做n-1趟排序
{
$flag = false; //本趟排序開(kāi)始前,交換標(biāo)志應(yīng)為假
for($j=$len-1;$j>=$i;$j--)
{
if($arr[$j]<$arr[$j-1])//交換記錄
{//如果是從大到小的話,只要在這里的判斷改成if($arr[$j]>$arr[$j-1])就可以了
$x=$arr[$j];
$arr[$j]=$arr[$j-1];
$arr[$j-1]=$x;
$flag = true;//發(fā)生了交換,故將交換標(biāo)志置為真
}
}
if(! $flag)//本趟排序未發(fā)生交換,提前終止算法
return $arr;
}
}
$shuz = array('2','4','1','8','5');
$bb = maopao($shuz);
print_r($bb);
// 快速排序
function kuaisu($arr){
$len = count($arr);
if($len <= 1){
return $arr;
}
$key = $arr[0];
$left_arr = array();
$right_arr = array();
for($i=1; $i<$len;$i++){
if($arr[$i] <= $key){
$left_arr[] = $arr[$i];
}else{
$right_arr[] = $arr[$i];
}
}
$left_arr = kuaisu($left_arr);
$right_arr = kuaisu($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}
$arr = array(23,98,54,2,9,62,34);
print_r(kuaisu($arr));
希望本文所述對(duì)大家php程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- PHP 快速排序算法詳解
- php冒泡排序、快速排序、快速查找、二維數(shù)組去重實(shí)例分享
- php實(shí)現(xiàn)快速排序的三種方法分享
- php排序算法(冒泡排序,快速排序)
- php實(shí)現(xiàn)快速排序法函數(shù)代碼
- php數(shù)據(jù)結(jié)構(gòu)與算法(PHP描述) 快速排序 quick sort
- php項(xiàng)目開(kāi)發(fā)中用到的快速排序算法分析
- php快速排序原理與實(shí)現(xiàn)方法分析
- php關(guān)聯(lián)數(shù)組快速排序的方法
- php簡(jiǎn)單實(shí)現(xiàn)快速排序的方法
- PHP兩種快速排序算法實(shí)例
- PHP快速排序quicksort實(shí)例詳解
相關(guān)文章
-
PHP郵件發(fā)送類PHPMailer用法實(shí)例詳解
這篇文章主要介紹了PHP郵件發(fā)送類PHPMailer用法,詳細(xì)的講述了安裝及配置的方法與功能實(shí)現(xiàn)代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下 2014-09-09
-
WordPres對(duì)前端頁(yè)面調(diào)試時(shí)的兩個(gè)PHP函數(shù)使用小技巧
這篇文章主要介紹了WordPres對(duì)前端頁(yè)面調(diào)試時(shí)的兩個(gè)PHP函數(shù)使用小技巧,分別是過(guò)濾Html內(nèi)嵌JavaScript與禁止瀏覽器緩存的方法,需要的朋友可以參考下 2015-12-12
-
php字符串比較函數(shù)用法小結(jié)(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
這篇文章主要介紹了php字符串比較函數(shù)用法,結(jié)合實(shí)例形式分析了php針對(duì)字符串的比較、排序等操作相關(guān)技巧與注意事項(xiàng),需要的朋友可以參考下 2016-07-07
-
php獲取post中的json數(shù)據(jù)的實(shí)現(xiàn)方法
最近用到ext與PHP交互,ext把json數(shù)據(jù)post給PHP,但在PHP里面$_post獲取不到,$_REQUEST也獲取不到,但是通過(guò)firedebug看到的請(qǐng)求信息確實(shí)是把JSON數(shù)據(jù)post給了PHP,這什么情況 2011-06-06
-
PHP中數(shù)組轉(zhuǎn)換為SimpleXML教程
在本篇文章中我們給大家總結(jié)了一篇關(guān)于PHP中數(shù)組轉(zhuǎn)換為SimpleXML教程內(nèi)容,有需要的朋友們跟著學(xué)習(xí)參考下。 2019-01-01
-
windows下配置apache+php+mysql時(shí)出現(xiàn)問(wèn)題的處理方法
windows下配置apache+php+mysql應(yīng)該是每個(gè)phper必須掌握的基礎(chǔ)技能了,這也是熟悉php的一個(gè)過(guò)程,小編當(dāng)年自己配環(huán)境的時(shí)候也遇到過(guò)這樣那樣的問(wèn)題,現(xiàn)在把當(dāng)時(shí)記錄的幾個(gè)問(wèn)題的處理方法分享給大家 2014-06-06
-
PHP生成不同顏色、不同大小的tag標(biāo)簽函數(shù)
看別人網(wǎng)站上面的tag都是不同顏色,不同大小的tag標(biāo)簽非常不錯(cuò),這里就分享兩個(gè)函數(shù),方便需要的朋友 2013-09-09
最新評(píng)論
本文實(shí)例分析了php冒泡排序與快速排序算法。分享給大家供大家參考,具體如下:
$a=array('3','8','1','4','11','7'); print_r($a); $len = count($a); //從小到大 for($i=1;$i<$len;$i++) { for($j=$len-1;$j>=$i;$j--) if($a[$j]<$a[$j-1]) {//如果是從大到小的話,只要在這里的判斷改成if($b[$j]>$b[$j-1])就可以了 $x=$a[$j]; $a[$j]=$a[$j-1]; $a[$j-1]=$x; } } print_r($a);j //另一種方法 從小到大 $b=array('4','3','8','9','2','1'); $len=count($b); for($k=1;$k<$len;$k++) { for($j=$len-1,$i=0;$i<$len-$k;$i++,$j--) if($b[$j]<$b[$j-1]){ //如果是從大到小的話,只要在這里的判斷改成if($b[$j]>$b[$j-1])就可以了 $tmp=$b[$j]; $b[$j]=$b[$j-1]; $b[$j-1]=$tmp; } print_r($b); echo " "; } //下面的這個(gè)執(zhí)行效率更高 function maopao($arr) { $len = count($arr); for($i=1; $i<$len; $i++)//最多做n-1趟排序 { $flag = false; //本趟排序開(kāi)始前,交換標(biāo)志應(yīng)為假 for($j=$len-1;$j>=$i;$j--) { if($arr[$j]<$arr[$j-1])//交換記錄 {//如果是從大到小的話,只要在這里的判斷改成if($arr[$j]>$arr[$j-1])就可以了 $x=$arr[$j]; $arr[$j]=$arr[$j-1]; $arr[$j-1]=$x; $flag = true;//發(fā)生了交換,故將交換標(biāo)志置為真 } } if(! $flag)//本趟排序未發(fā)生交換,提前終止算法 return $arr; } } $shuz = array('2','4','1','8','5'); $bb = maopao($shuz); print_r($bb); // 快速排序 function kuaisu($arr){ $len = count($arr); if($len <= 1){ return $arr; } $key = $arr[0]; $left_arr = array(); $right_arr = array(); for($i=1; $i<$len;$i++){ if($arr[$i] <= $key){ $left_arr[] = $arr[$i]; }else{ $right_arr[] = $arr[$i]; } } $left_arr = kuaisu($left_arr); $right_arr = kuaisu($right_arr); return array_merge($left_arr, array($key), $right_arr); } $arr = array(23,98,54,2,9,62,34); print_r(kuaisu($arr));
希望本文所述對(duì)大家php程序設(shè)計(jì)有所幫助。
- PHP 快速排序算法詳解
- php冒泡排序、快速排序、快速查找、二維數(shù)組去重實(shí)例分享
- php實(shí)現(xiàn)快速排序的三種方法分享
- php排序算法(冒泡排序,快速排序)
- php實(shí)現(xiàn)快速排序法函數(shù)代碼
- php數(shù)據(jù)結(jié)構(gòu)與算法(PHP描述) 快速排序 quick sort
- php項(xiàng)目開(kāi)發(fā)中用到的快速排序算法分析
- php快速排序原理與實(shí)現(xiàn)方法分析
- php關(guān)聯(lián)數(shù)組快速排序的方法
- php簡(jiǎn)單實(shí)現(xiàn)快速排序的方法
- PHP兩種快速排序算法實(shí)例
- PHP快速排序quicksort實(shí)例詳解
相關(guān)文章
PHP郵件發(fā)送類PHPMailer用法實(shí)例詳解
這篇文章主要介紹了PHP郵件發(fā)送類PHPMailer用法,詳細(xì)的講述了安裝及配置的方法與功能實(shí)現(xiàn)代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-09-09WordPres對(duì)前端頁(yè)面調(diào)試時(shí)的兩個(gè)PHP函數(shù)使用小技巧
這篇文章主要介紹了WordPres對(duì)前端頁(yè)面調(diào)試時(shí)的兩個(gè)PHP函數(shù)使用小技巧,分別是過(guò)濾Html內(nèi)嵌JavaScript與禁止瀏覽器緩存的方法,需要的朋友可以參考下2015-12-12php字符串比較函數(shù)用法小結(jié)(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
這篇文章主要介紹了php字符串比較函數(shù)用法,結(jié)合實(shí)例形式分析了php針對(duì)字符串的比較、排序等操作相關(guān)技巧與注意事項(xiàng),需要的朋友可以參考下2016-07-07php獲取post中的json數(shù)據(jù)的實(shí)現(xiàn)方法
最近用到ext與PHP交互,ext把json數(shù)據(jù)post給PHP,但在PHP里面$_post獲取不到,$_REQUEST也獲取不到,但是通過(guò)firedebug看到的請(qǐng)求信息確實(shí)是把JSON數(shù)據(jù)post給了PHP,這什么情況2011-06-06PHP中數(shù)組轉(zhuǎn)換為SimpleXML教程
在本篇文章中我們給大家總結(jié)了一篇關(guān)于PHP中數(shù)組轉(zhuǎn)換為SimpleXML教程內(nèi)容,有需要的朋友們跟著學(xué)習(xí)參考下。2019-01-01windows下配置apache+php+mysql時(shí)出現(xiàn)問(wèn)題的處理方法
windows下配置apache+php+mysql應(yīng)該是每個(gè)phper必須掌握的基礎(chǔ)技能了,這也是熟悉php的一個(gè)過(guò)程,小編當(dāng)年自己配環(huán)境的時(shí)候也遇到過(guò)這樣那樣的問(wèn)題,現(xiàn)在把當(dāng)時(shí)記錄的幾個(gè)問(wèn)題的處理方法分享給大家2014-06-06PHP生成不同顏色、不同大小的tag標(biāo)簽函數(shù)
看別人網(wǎng)站上面的tag都是不同顏色,不同大小的tag標(biāo)簽非常不錯(cuò),這里就分享兩個(gè)函數(shù),方便需要的朋友2013-09-09