Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux编程 > » 正文

数据结构&算法(PHP描述) 半折插入排序 straight binary sort

来源: 未知 分享至:
 1 <?php
2 /**
3 * 半折插入排序 straight binary sort
4 *
5 * 原理:当直接插入排序进行到某一趟时,对于 r[i] 来讲,前边 i-1 个记录已经按关键字有序。此时不用直接插入排序的方法,而改为折半查找,找出 r[i] 应插的位置,然后插入。
6 */
7 function sort_binary_insertion($list)
8 {
9 $len = count($list);
10 if(empty($len)) return $list;
11
12 for($i = 1; $i < $len; $i++)
13 {
14 $temp = $list[$i];
15 $low = 0;
16 $high = $i - 1;
17
18 while($low <= $high)
19 {
20 $mid = intval(($low + $high)/2);
21
22 //if($temp > $list[$mid]) // 从大到小
23 if($temp < $list[$mid]) // 从小到大
24 {
25 $high = $mid - 1;
26 } else {
27 $low = $mid + 1;
28 }
29 }
30 for($j = $i - 1; $j >= $mid; $j--)
31 {
32 $list[$j + 1] = $list[$j];
33 echo implode(\",\",$list),\"#mid=\"

Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史