快速排序和插入排序

2021-07-25 04:33:41 字數 970 閱讀 7682

下面介紹用快速排序法和插入排序法來給乙個一維陣列排序

具體**實現如下:

// 快速排序法:

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,大於基準的放...