[color=blue]//二分法
function binarySearch($a, $val){
$low = 0;
$high= count($a) - 1;
while($low <= $high){
$mid = intval(($low+$high)/2);
if($a[$mid] == $val) return $mid;
if($a[$mid] > $val){
$high = $mid - 1;
}else{
$low = $mid + 1;
}
}
return -1;
}
//快速排序算法
function quickSort(&$a, $l, $r){
if($l >= $r) return;
$m = pation($a, $l, $r);
quickSort($a, $l, $m-1);
quickSort($a, $m+1, $r);
}
function pation(&$a, $l, $r){
$pivot = $a[$l];
$i = $l + 1;
$j = $r;
while(1){
while($a[$i] > $pivot && $i < $j) $i++;
while($a[$j] < $pivot) $j--;
if($i>=$j) break;
$temp = $a[$i];
$a[$i]= $a[$j];
$a[$j]= $temp;
}
$a[$l] = $a[$j];
$a[$j] = $pivot;
return $j;
}[/color]
function binarySearch($a, $val){
$low = 0;
$high= count($a) - 1;
while($low <= $high){
$mid = intval(($low+$high)/2);
if($a[$mid] == $val) return $mid;
if($a[$mid] > $val){
$high = $mid - 1;
}else{
$low = $mid + 1;
}
}
return -1;
}
//快速排序算法
function quickSort(&$a, $l, $r){
if($l >= $r) return;
$m = pation($a, $l, $r);
quickSort($a, $l, $m-1);
quickSort($a, $m+1, $r);
}
function pation(&$a, $l, $r){
$pivot = $a[$l];
$i = $l + 1;
$j = $r;
while(1){
while($a[$i] > $pivot && $i < $j) $i++;
while($a[$j] < $pivot) $j--;
if($i>=$j) break;
$temp = $a[$i];
$a[$i]= $a[$j];
$a[$j]= $temp;
}
$a[$l] = $a[$j];
$a[$j] = $pivot;
return $j;
}[/color]
本文介绍了两种基本的算法:二分查找法和快速排序法。二分查找法是一种在有序数组中查找特定元素的搜索算法,其核心思想是通过将目标值与数组中间元素进行比较来缩小查找范围。快速排序法是一种高效的排序算法,采用分治策略来把一个序列分为较小和较大的两个子序列,然后递归地排序各子序列。
1万+

被折叠的 条评论
为什么被折叠?



