在我們學程式時就知道排序大概有泡排序法、快速排序法、選擇排序法等,同時排序方法分為兩在類內部和外部。
數組的排序方法
分為兩在類:
1、內(記憶體)部排序
2、外部排序(資料量很大,記憶體放不下,需要藉助外部
儲存)
----------------
排序sorting是一個程式員的基本功
一:內部排序
(1)交換式排序
1、冒泡法
數組預設的傳遞是值傳遞,而不是地址傳遞
後面將講到物件類型,對象預設的傳遞就是地址傳遞
//最佳化,將冒泡排序法封裝成函數,利於以後使用
| 代碼如下 |
複製代碼 |
function bubbleSort(&$myarr){ $temp=0;//定義一個中間變數 //外層迴圈 for($i=0;$ifor($j=0;$j$j++){ if($myarr[$j]>$myarr[$j +1]){ $temp=$myarr[$j]; $myarr[$j]= $myarr[$j+1]; $myarr[$j+1]= $temp; } } } } $arry=array(2,6,-4,7,9,0); bubbleSort($arry); print_r($arry); |
2、快速排序法(神奇的快速,涉及到遞迴)
3、選擇排序法
| 代碼如下 |
複製代碼 |
function selectSort(&$myarr){ $temp=0; for($i=0;$i//假設$i就是最小的數 $minval=$myarr[$i]; //記錄我認為的最小數的下標 $minIndex=$i; for($j=$i+1;$j+){ //說明我們認為的最小值,不是最小 if($minval>$myarr[$j]){ $minval=$myarr[$j]; $minIndex=$j; } } //最後交換 $temp=$myarr[$i]; $myarr[$i]=$myarr[$minIndex]; $myarr[$minIndex]=$temp; } } |
4、插入排序法
查詢速度:冒泡排序法<選擇排序法<插入排序法
個人最喜歡用的是交換排序了,就是大家說的泡泡排序法了,這種方法比較好用,但不適於大資料量的排序。
http://www.bkjia.com/PHPjc/631630.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631630.htmlTechArticle在我們學程式時就知道排序大概有泡排序法、快速排序法、選擇排序法等,同時排序方法分為兩在類內部和外部。 數組的排序方法 分為兩在...