下面介紹用快速排序法和插入排序法來給乙個一維陣列排序
具體**實現如下:
// 快速排序法:
function quick_sort($arr)
// 獲取陣列的長度
$len = count($arr);
// 如果陣列的<=1,說明不許排序
if($len <= 1)
// 選擇第乙個元素作為標尺
$base = $arr[0];
// 初始化兩個陣列
$left_arr = array(); // 用於放小於標尺的元素
$right_arr = array(); // 用於放大於標尺的元素
// 迴圈陣列對元素進行分組
for($i=1;$i<$len;$i++) else
}// 再分別對這兩個陣列進行同樣的排序處理
// 遞迴呼叫這個函式,並記錄結果
$left_arr = quick_sort($left_arr);
$right_arr = quick_sort($right_arr);
// 合併陣列
return array_merge($left_arr,array($base),$right_arr);
}// 測試:
$arr = array(7,2,4,3,8,6);
var_dump(quick_sort($arr));
插入排序法:將要排序的元素插入到已經排序好的陣列的指定位置
具體**實現如下:
// 插入排序
function insert_into($arr) else
} }return $arr;
}// 測試:
$arr = array(7,2,4,3,8,6);
var_dump(insert_into($arr));
快速排序和插入排序
快排還是看之前的那篇部落格吧,這個寫的不實用 基於 資料結構與演算法分析 182頁,寫的快速排序。對於樞紐元的選擇使用三數中值分割法。include include define cutoff 3 using namespace std 三數中值分割方法 int media3 vector vecu...
插入排序和快速排序
實現兩個個函式,輸入陣列和陣列個數,從小到大排序,要求使用函式模板。支援 int char float double long。乙個函式使用快速排序法,乙個函式使用插入排序法 templatevoid insertionsort t arr,const int count 更新pos,當pos不小於...
氣泡排序,快速排序,插入排序
一 氣泡排序 大致分兩步 1 依次對比相鄰2個數字,前者比後者大就調換位置 2 重複第一步操作,直到所有數字都按順序排列 function bubblesort arr return arr 二 快速排序大致分三步 1 找基準 一般是以中間項為基準 2 遍歷陣列,小於基準的放在left,大於基準的放...