php中數組排序各種方法_PHP教程

來源:互聯網
上載者:User
在我們學程式時就知道排序大概有泡排序法、快速排序法、選擇排序法等,同時排序方法分為兩在類內部和外部。

數組的排序方法
分為兩在類:
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在我們學程式時就知道排序大概有泡排序法、快速排序法、選擇排序法等,同時排序方法分為兩在類內部和外部。 數組的排序方法 分為兩在...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.