程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php的冒泡排序和快速排序,php冒泡排序排序

php的冒泡排序和快速排序,php冒泡排序排序

日期:2017/1/16 14:59:20      編輯:關於PHP編程

php的冒泡排序和快速排序,php冒泡排序排序


1. 冒泡排序
  /*將第1個數與第2個數,比較如果小於第2個數,就交換位置,依次與這些數比較。
   *緊接著是 第2個數做同樣的事,直到最後一個數為止
   */

復制代碼
//需求:將數組中元素,從大到小排列
$a = array(11, 22, 44, 66, 99, 88);
$sortArray = bubbleSort($a);
print_r($sortArray);


function bubbleSort($array) {/*{{{*/ $oldArray = $array; $newArray = array(); $count = count($oldArray); for($i = 0; $i < $count; $i++) {/*{{{*/ //初始化 $newArray[$i] = $oldArray[$i]; for($j = $i+1; $j < $count; $j++) { if($oldArray[$j] > $newArray[$i]) { $newArray[$i] = $oldArray[$j]; //交換位置 $tmp = $oldArray[$i]; $oldArray[$i] = $oldArray[$j]; $oldArray[$j] = $tmp; } } }/*}}}*/ return $newArray; }/*}}}*/
復制代碼

 

  2. 快速排序
  /*以第一個數為基准,比這個數大的數放到左邊的數組,比這個數大的數放到右邊的數組,然後做遞歸操作。
   *最後將左邊數組,這個數和右邊數組做 數組的 array_merge操作就行了
   */

復制代碼
 //需求:將數組中元素,從大到小排列
$a = array(11, 22, 44, 66, 99, 88);
$sortArray = bubbleSort($a);
print_r($sortArray);

function fastSort($oldArray) {/*{{{*/ $newArray = array(); $count = count($oldArray); if($count <= 1) return $oldArray; $stand = $oldArray[0]; //初始化 $left_array = array(); $right_array = array(); for($i = 1; $i < $count; $i++) {/*{{{*/ if($oldArray[$i] > $stand) { $left_array[] = $oldArray[$i]; } else { $right_array[] = $oldArray[$i]; } }/*}}}*/ //遞歸調用 $left_array = fastSort($left_array); $right_array = fastSort($right_array); //也可循環放入新數組中 $newArray = array_merge($left_array, array($stand), $right_array); return $newArray; }/*}}}*/

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