php數(shù)組冒泡排序算法實(shí)例

字號(hào):


    本文實(shí)例講述了php數(shù)組冒泡排序算法。分享給大家供大家參考,具體如下:
    <?php
    /*@冒泡排序算法
    */
    $array=array(5,45,22,11,32,28,35,56,17,21,92);
    $len=count($array);//計(jì)算數(shù)組長(zhǎng)度
    for($i=0;$i<$len-1;$i++){//需要比較$len-1輪,每一輪需要比較$len-1次
      for($j=0;$j<$len-1;$j++){//需要比較$len-1次,因?yàn)檠h(huán)到最后一個(gè)數(shù)時(shí),后面沒有數(shù)可以比較了,所以循環(huán)到倒數(shù)第二個(gè)數(shù)正好
       $k=$j+1;//得到當(dāng)前數(shù)的后一個(gè)數(shù)的下標(biāo),我們依次比較的是數(shù)組下標(biāo)分別為0-1,1-2,3-4的數(shù)值對(duì)
       if($array[$j]>$array[$k]){//比較兩數(shù),如果前一個(gè)數(shù)比后一個(gè)大,則交換兩個(gè)數(shù)的順序
         $t=$array[$j];
         $array[$j]=$array[$k];
         $array[$k]=$t;
       }//第一次循環(huán)比較完之后,進(jìn)行下一輪比較
      }
    }
    print_r($array);
    /*理解冒泡排序的關(guān)鍵在于,它的比較結(jié)果是大數(shù)往后放,依次得出的是最大的數(shù),第二大的數(shù),第三大的數(shù)。。。依次類推*/
    ?>
    希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。