程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 四種基本排序算法的代碼實現(1)

PHP 四種基本排序算法的代碼實現(1)

編輯:關於PHP編程

PHP 四種基本排序算法的代碼實現(1)


許多人都說算法是程序的核心,算法的好壞決定了程序的質量。作為一個初級phper,雖然很少接觸到算法方面的東西。但是對於基本的排序算法還是應該掌握的,它是程序開發的必備工具。這裡介紹冒泡排序,插入排序,選擇排序,快速排序四種基本算法,分析一下算法的思路。

PHP 四種基本排序算法的代碼實現

前提:分別用冒泡排序法,快速排序法,選擇排序法,插入排序法將下面數組中的值按照從小到大的順序進行排序。

$arr(1,43,54,62,21,66,32,78,36,76,39);

1. 冒泡排序

思路分析:在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即,每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。

  1. $arr=array(1,43,54,62,21,66,32,78,36,76,39);   
  2. function bubbleSort($arr) 
  3. {   
  4.   $len=count($arr); 
  5.   //該層循環控制 需要冒泡的輪數 
  6.   for($i=1;$i<$len;$i++) 
  7.   { //該層循環用來控制每輪 冒出一個數 需要比較的次數 
  8.     for($k=0;$k<$len-$i;$k++) 
  9.     { 
  10.        if($arr[$k]>$arr[$k+1]) 
  11.         { 
  12.             $tmp=$arr[$k+1]; 
  13.             $arr[$k+1]=$arr[$k]; 
  14.             $arr[$k]=$tmp; 
  15.         } 
  16.     } 
  17.   } 
  18.   return $arr; 

2. 選擇排序

思路分析:在要排序的一組數中,選出最小的一個數與第一個位置的數交換。然後在剩下的數當中再找最小的與第二個位置的數交換,如此循環到倒數第二個數和最後一個數比較為止。

  1. function selectSort($arr) { 
  2. //雙重循環完成,外層控制輪數,內層控制比較次數 
  3. $len=count($arr); 
  4. for($i=0; $i<$len-1; $i++) { 
  5. //先假設最小的值的位置 
  6. $p = $i; 
  7.  
  8. for($j=$i+1; $j<$len; $j++) { 
  9. //$arr[$p] 是當前已知的最小值 
  10. if($arr[$p] > $arr[$j]) { 
  11. //比較,發現更小的,記錄下最小值的位置;並且在下次比較時采用已知的最小值進行比較。 
  12. $p = $j; 
  13. //已經確定了當前的最小值的位置,保存到$p中。如果發現最小值的位置與當前假設的位置$i不同,則位置互換即可。 
  14. if($p != $i) { 
  15. $tmp = $arr[$p]; 
  16. $arr[$p] = $arr[$i]; 
  17. $arr[$i] = $tmp; 
  18. //返回最終結果 
  19. return $arr; 




  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved