PHP的簡易冒泡法代碼分享_PHP教程

來源:互聯網
上載者:User
很基礎的東西,感覺代碼還不夠簡潔,希望高手指導修改
複製代碼 代碼如下:
function BubbleSort($str){
for($i=0;$ifor ($k=count($str)-2;$k>=$i;$k--){//將這個值向前冒泡;
if($str[$k+1]<$str[$k]){ //將小於符號改為大於符號,就是降序排列;
$tmp=$str[$k+1];
$str[$k+1]=$str[$k];
$str[$k]=$tmp;
}
}
}
return $str;
}
//以下是測試
$str=array(5,8,2,6,10,0,3,12,11);
print_r(BubbleSort($str));
?>

php 冒泡排序2
基本概念是:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複以上過程,仍從第一對數開始比較(因為可能由於第2個數和第3個數的交換,使得第1個數不再小於第2個數),將小數放前,大數放後,一直比較到最大數前的一對相鄰數,將小數放前,大數放後,第二趟結束,在倒數第二個數中得到一個新的最大數。如此下去,直至最終完成排序。
  由於在排序過程中總是小數往前放,大數往後放,相當於氣泡往上升,所以稱作冒泡排序。
  用二重迴圈實現,外迴圈變數設為i,內迴圈變數設為j。外迴圈重複9次,內迴圈依次重複 9,8,...,1次。每次進行比較的兩個元素都是與內迴圈j有關的,它們可以分別用a[j]和a[j+1]標識,i的值依次為1,2,...,9,對於每一個i, j的
值依次為1,2,...10-i。
複製代碼 代碼如下:
function asc($a)
{
for($i=0;$i{
for($j=0;$j{
if($a[$j]>$a[$j+1])
{
$tmp=$a[$j+1];
$a[$j+1]=$a[$j];
$a[$j]=$tmp;
}
}
}
print_r($a);
}
$a = array(9,8,17,6,26,4,33,2,1);
print_r(asc($a));
?>


function desc($a)
{
$c=array();
for($i=count($a)-1;$i>0;$i--)
{
for($j=0;$j{
if($a[$j]<$a[$j+1])
{
$tmp=$a[$j+1];
$a[$j+1]=$a[$j];
$a[$j]=$tmp;
}
}
}
print_r($a);
}
$arr=array(33,24,56,55,59);
desc($arr);
?>

PHP冒泡排序法示範
以前面試的時候考官出的筆試題,覺得比較XX,寫程式應該是在電腦上面,而不是在筆頭上。
PHP程式檔案sort_bubble_up.php
複製代碼 代碼如下:

冒泡排序法示範


冒泡排序法示範




































//隨機產生數組 $arr=array(); echo ' '; echo ' '; for($i=0;$i<10;$i++){ $arr[$i]=rand(); echo " "; } //進行冒泡法排序 for($i=9;$i>0;$i--){ echo ' '; for($j=0;$j<$i;$j++){ if($arr[$j]<$arr[$j+1]){ $tmp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$tmp; } echo ' '; for($k=0;$k<10;$k++){ switch($k){ case $j : echo ' "; } echo ' '; } } //顯示排序結果 echo ' '; echo ' '; for($i=0;$i<10;$i++){ echo " "; } echo ' '; ?>
初始值
\$arr[$i]={$arr[$i]}
第'.(10-$i).'次
'; break;
case $j+1 : echo '
'; break;
default : echo '
';
}
echo "\$arr[$k]={$arr[$k]}
結果
\$arr[$i]={$arr[$i]}



樣式表檔案sort.css
複製代碼 代碼如下:
h1{text-align: center; color: blue;}
table{font-size: 12px; font-family: arial; background-color: black; text-align: center;}
td{background-color: white;}
.base{background-color: #0FF;}
.light{background-color: #0DD;}
.title{background-color: #3FF; text-align: center;}

http://www.bkjia.com/PHPjc/325904.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/325904.htmlTechArticle很基礎的東西,感覺代碼還不夠簡潔,希望高手指導修改 複製代碼 代碼如下: ?php function BubbleSort($str){ for($i=0;$icount($str);$i++){//從數組末尾取...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.