最新消息:

php二分法插入排序

PHP baixiaoshideITshuaguaimiji 155浏览 0评论

php二分法插入排序

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

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

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

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

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

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

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

php二分法插入排序

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);

转载请注明:PHP学习 » php二分法插入排序

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址