注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

记录~~~

Stay Hungry. Stay Foolish.

 
 
 

日志

 
 

一个归并排序(分治法)  

2013-06-12 14:26:43|  分类: 算法/DS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

<?php
function merge(&$arr,$p,$q,$r){
$n1 = $q-$p+1;
$n2 = $r-$q;

for ($i=0; $i < $n1; $i++) {
$larr[$i] = $arr[$p+$i];
}

for ($j=0; $j < $n2; $j++) {
$rarr[$j] = $arr[$q+$j+1];
}

$i=0;
$j=0;
$k=$p;

//三个while是重点难点
while($i<$n1 && $j<$n2){
if( $larr[$i] <= $rarr[$j]){
$arr[$k++] = $larr[$i++];
}else{
$arr[$k++] = $rarr[$j++];
}
}
while($i<$n1){
$arr[$k++] = $larr[$i++];
}
while($j<$n2){
$arr[$k++] = $rarr[$j++];
}

}

function merge_sort(&$arr,$p,$r){
if($p<$r){
$q = floor(($p+$r)/2);
merge_sort($arr,$p,$q);
merge_sort($arr,$q+1,$r);
merge($arr,$p,$q,$r);
return;
}

}
$arr = array(31,59,26,80,56,15,72,54);
$r = count($arr)-1;

merge_sort($arr,0,$r);

echo "<pre>";
var_dump($arr);exit;
echo "</pre>";



  评论这张
 
阅读(112)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018