/*
二分法查詢
@param $arr 查詢陣列
@param $key 查詢值
@param $low 最小數
@param $high 最大數
*/function
func
($arr, $key, $low=0, $high=0)
$mid = intval(($low + $high) / 2);
if ($arr[$mid] == $key) elseif ($arr[$mid] > $key) else
}}$arr = ['a', 'b', 'c'];
func($arr, 'c');
/*
快速排序
原理:找到當前陣列中的任意乙個元素(一般選擇陣列第乙個元素),作為標準,新建兩個空陣列,遍歷整個陣列元素,如果遍歷到的元素比當前的元素要小,那麼就放到左邊的陣列,否則放到右邊的陣列,然後再對新陣列進行同樣的操作。
*/function
quick_sort
($arr)
if (count($arr) <= 1)
$left_arr = ;
$right_arr = ;
$key = $arr[0];
for ($i=0; $i
$arr); $i++) else
}$left_arr = quick_sort($left_arr);
$right_arr = quick_sort($right_arr);
return array_merge($left_arr, [$key], $right_arr);
}$arr = [2, 3, 6, 4, 1, 0];
print_r(quick_sort($arr));
二分法快速排序
我在實現二分法快速排序的時候,最初的程式是這樣的。include using namespace std void qsort int arr,int left,int right while l r arr l value l if arr l value while l r arr l valu...
C 快速(二分法)排序
快速 二分法 排序的思想是將陣列劃分為兩邊,以某個節點v為界 設這個節點的值為 v 在節點v左邊的所有元素都小於 v,在節點v右邊的所有元素都大於v.這樣不停地劃分,到最後整個陣列就是有序的了。具體分成兩邊的思路為 起始下標為start,結束下標為 end 選擇v a end 作為中介點 先從sta...
二分法 選擇排序 快速排序
最近看了 演算法 覺得很棒,做一些總結記錄。coding utf 8 import random author chenk class algorithme def init self self.low 0 self.high 10000 def get random num self return...