分析php選擇排序法實現數組排序的方法
本文實例分析了PHP選擇排序法實現數組排序的.方法。分享給大家供大家參考。具體分析如下:
選擇排序法的基本思路:直接用案例來說明吧,比如有一個數組$arr = array(2,6,3,9),從大到小排序。
第一次大循環:它首先假設$arr[0]爲最大值,然後分別跟$arr[1]~$arr[3]進行比較,如果比較它大,則進行交換,過程是這樣(2,6,3,9)---2和6比 --->(6,2,3,9)---6和3比--->(6,2,3,9)---6和9比--->(9,2,3,6)。注意,這裏下標也要變化。
第二次大循環:假設$arr[1]最大(排除了$arr[0]),分別跟$arr[2]~$arr[3]比較,過程是這樣(9,2,3,6)----2和3比---->(9,3,2,6)---3和6比--->(9,6,2,3)。
第三次大循環:假設$arr[2]最大,跟$arr[3]比較,過程是這樣(9,6,2,3)---2和3比--->(9,6,3,2)
同樣的,經過 N-1 次大的循環,即可排列出來
PHP代碼如下,這裏同樣用函數進行的封裝
<?phpfunction selectSort(&$arr){ for($i=0;$i<count($arr);$i++){ $max = $arr[$i]; for($j=$i+1;$j<count($arr);$j++){ if($max<$arr[$j]){ $max = $arr[$j]; $arr[$j] = $arr[$i]; $arr[$i] = $max; } } } return $arr;}$myarr = array(2,6,3,9);selectSort($myarr);echo "<pre>";print_r($myarr);?>
代碼分析:
第一次大循環:
$i=0 數組(2,6,3,9)
$j=1,執行 2和6比:變成$arr[0]=6,$arr[1]=2,$max=6即(6,2,3,9)
$j=2,執行 3和6比:不執行
$j=3,執行 9和6比:變成$arr[0]=9,$arr[3]=6,$max=9即(9,2,3,6)
第二次大循環:
$i=1,$max=$arr[1]=2,數組(9,2,3,6)
$j=2,執行 3和2比:變成$arr[1]=3,$arr[2]=2,$max=3即(9,3,2,6)
$j=3,執行 6和3比:變成$arr[1]=6,$arr[3]=3,$max=6即(9,6,2,3)
第三次大循環:
$i=2,$max=$arr[2]=2,數組(9,6,2,3)
$j=3,執行 3和2比:變成$max[2]=3,$arr[3]=2,$max=3即(9,6,3,2)
希望本文所述對大家的php程序設計有所幫助。</p
相關文章
-
PHP二維數組排序的方法
一維數組排序可以使用asort、ksort等一些方法進程排序,相對來說比較簡單。二維數組的排序怎麼實現呢?使用array_multisort和usort可以實現,以下是小編爲大家搜索整理的PHP二維數組排序的方法,希望能給大家帶來幫助!更多 -
PHP二維數組排序的3種方法和自定義函數分享
這篇文章主要介紹了PHP二維數組排序的3種方法和自定義函數分享,需要的朋友可以參考下關於排序一般我們都是通過數據庫或者nosql(eg:redis)先排好序然後輸出到程序裏直接使用,但是有些時候我們需要通過PHP直接來對數組 -
PHP二維數組排序方法
一維數組排序可以使用asort、ksort等一些方法進程排序,相對來說比較簡單。下面是小編爲大家整理的PHP二維數組排序方法,歡迎參考~ 例如像下面的數組:代碼如下:$users = array(array('name' => 'tom', -
PHP 數組排序方法總結
文章詳細的介紹了快速創建數組的函數range()和常見PHP數組排序的方法,希望對大家有幫助。隨着PHP的快速發展,用它的人越來越多,在PHP數組學習摘錄部分了解到最基本的PHP數組的建立和數組元素的顯示。需要深入學習下PHP數 -
PHP指定字段的多維數組排序方法
複製代碼 代碼如下:function sortArrByField(&$array, $field, $desc = false){$fieldArr = array();foreach ($array as $k => $v) {$fieldArr[$k] = $v[$field];}$sort = $desc == false ? SORT_ASC : SORT_DES -
php實現快速排序的三種方法
三種php快速排示例,第一種效率低但最簡單最容易理解,第二個是算法導論上提供的單向一次遍歷找中值方法,第三種是雙向遍歷找中值經典快排算法。下面是小編爲大家帶來的php實現快速排序的三種方法,歡迎閱讀。 方法一:該方法 -
PHP中數組的分組排序實例
PHP的數組,數組中的內容大致如下,就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!複製代碼 代碼如下:$list = array(array(2,3,5),array(2,5,24),array(3,8,6),array(3,2,10),array(4, -
關於php堆排序實現原理與應用方法
這裏以php作爲描述語言較詳細講解堆排序原理,因保證程序可讀性,故不做優化,php程序中關於堆的一些概念如下:假設n爲當前數組的key則,n的父節點爲 n>>1 或者 n/2(整除);n的左子節點l= n<<1 或 l=n*2,n的右子節點r=(n<< -
php對特殊語句查詢結果進行數組排序的方法技巧
PHP獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。以下是小編爲大家搜索整理php對特殊語句查詢結果進行數組排序的方法,希望能給大家帶來幫助!更多精彩內容請及時關注我 -
PHP對特殊語文查詢結果進行數組排序的方法介紹
數據庫查詢結果有時候不能直接使用,比如mysql等用in語句出來的結果,因此需要對結果進行某種方式的排序。下面,小編爲大家搜索整理了PHP對特殊語文查詢結果進行數組排序的方法,希望能給大家帶來幫助!更多精彩內容請及時關