专业编程基础技术教程

网站首页 > 基础教程 正文

php二分法插入排序

ccvgpt 2024-08-12 15:05:24 基础教程 15 ℃

php的二分法插入排序过程:

1.首先,必须有一个有序序列的数组$arr,那么$low=0,$high=count($arr)-1,$middle=ceil(($high-$low)/2)。

php二分法插入排序

2.将要插入的数与数组中间位置的元素进行比较,

如果比中间元素大,则$low=$mid+1作为下一次判断的数组开头。

如果比中间元素小,则$high=$mid-1作为下一次判断的数组结尾。

3.直到$low>$high结束,$low就是新元素插入的位置。

4.将数组中从$low开始的元素全部向后移动一位,之后在$low位置插入新元素。

function binsort(&$arr,$key){

$low=0;

$high=count($arr)-1;

while($low<=$high){

$m = $low +ceil(($high-$low)/2);

$mkey = $arr[$m];

if($key>=$mkey){

$low = $m + 1;

}else{

$high = $m - 1;

}

}

// 移动插入位置之后的元素,插入新元素

for($i=count($arr)-1; $i>=$low; $i--){

$arr[$i+1] = $arr[$i];

}

$arr[$low] = $key;

}

$arr=array('1','3','5','7','9');

$key=mt_rand(0,10);

binsort($arr,$key);

echo $key;

print_r($arr);


Tags:

最近发表
标签列表