使用 php 進行冒泡排序

清華大佬耗費三個月吐血整理的幾百G的資源,免費分享!....>>>

<meta charset="gb2312" />
<?PHP
    //數(shù)組元素值從小到大排序
    $arr=array(1,42,0,3,15,7,19,26);
    foreach($arr as $k=>$v)
    echo " index:$k -- value:$v<br>";
      
    echo "<hr color=red />";
    echo "After applying sort() <br>";    
    $ar=$arr;
    //定義一個中間變量
    sort($ar);
    print_r($ar); 
      
    echo '<br><hr color=red />';
    echo "使用 冒泡排序";
    $temp=0;
    //外層循環(huán)的次數(shù)
    for($i=0;$i<count($arr)-1;$i++){
        $exchange=false;
        //內(nèi)層之間向右相鄰的兩個數(shù)組元素值進行比較
        for($j=0;$j<count($arr)-1-$i;$j++){
            //當后一個數(shù)組元素值大于前一個數(shù)組原數(shù)值
            if($arr[$j]>$arr[$j+1]){
            //數(shù)組元素交換
               $temp=$arr[$j];
               $arr[$j]=$arr[$j+1];
               $arr[$j+1]=$temp;
               $exchange=true;
              }
  
           }
        //外層數(shù)組循環(huán)的次數(shù)是---count($arr)-1
        //-1的原因(數(shù)組元素值比較時是兩個比較
        //如3個數(shù)組元素比較2次
        echo "這是第".($i+1)."次比較的結(jié)果";
        echo "<pre/>";
        print_r($arr);
        echo "<pre/>";
        if (!$exchange) 
        break;
       }
    echo "<hr color=red />";
    echo "<pre/>";
    print_r($arr);
    echo "<pre/>"
  
?>