文档章节

基于有序表的折半查找法

o
 osc_4nmshwhm
发布于 2018/08/06 20:38
字数 305
阅读 0
收藏 0

精选30+云产品,助力企业轻松上云!>>>

  二分查找法(binary search)也称为折半查找法,用来查找一组有序的记录数组中的某一记录,其基本思想是:将记录按有序化(递增或递减)排列,在查找过程中如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。

php实现二分查找算法: 1 <?php 2 $arr = array(10,15,18,21,23,24,28);

 3 function binarySearch($arr,$value){
 4     $low=0;
 5     $high = sizeof($arr)-1;
 6     while($low<=$high){
 7         $mid = ceil(($low+$high)/2);
 8         if($arr[$mid]>$value){
 9             $high = $mid-1;
10         }elseif($arr[$mid]<$value){
11             $low = $mid+1;
12         }else{
13             return $mid;
14         }
15     }
16     return -1;
17 }
18 19 echo binarySearch($arr,24); 20 ?>

 java实现:

/*基于有序表的折半查找法*/
public class SearchFile{
    
    public static int search(int a[],int e){
        int low =0,high=a.length-1;
        while(low<=high){
            int mid=(low+high)/2;
            if(e==a[mid]){    //如果在mid位置找到就返回
                return mid;
            }else{
                if(e>a[mid]){    
                    low=mid+1;    //将中位的下一位指针赋给low
                }else{
                    high=mid-1;//将中位的前一位指针赋给high
                }
            }
        }
        return -1;
    }
    public static void main(String args[]){
        int a[]={1,2,3,3,4,5,5,6,7,8,9,523,3400,5600};
        int index=search(a,523);
        System.out.println(index);
    }
}

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

SpringCloud- 第六篇 Hystrix参数配置(三)

1:概述 Hystrix使用Archaius作为配置属性的默认实现。官方配置文档: https://github.com/Netflix/Hystrix/wiki/Configuration 每个属性有四个优先级,依次增大: 1:代码的全局默认值 2:动...

osc_7z601p6x
32分钟前
5
0
SpringBoot2 整合JTA组件,多数据源事务管理

本文源码:GitHub·点这里 || GitEE·点这里 一、JTA组件简介 1、JTA基本概念 JTA即Java-Transaction-API,JTA允许应用程序执行分布式事务处理,即在两个或多个网络计算机资源上访问并且更新...

osc_sju4uxml
34分钟前
11
0
Springboot + Vue + shiro 实现前后端分离、权限控制

本文总结自实习中对项目的重构。原先项目采用Springboot+freemarker模版,开发过程中觉得前端逻辑写的实在恶心,后端Controller层还必须返回Freemarker模版的ModelAndView,逐渐有了前后端分...

osc_lbt7zo1x
35分钟前
19
0
docker-compose部署配置jenkins

docker-compose部署配置jenkins 一、docker-compose文件 version: '3.1'services: jenkins: image: jenkins/jenkins:lts volumes: - /data/jenkins/:/var/jenkins_home ......

osc_4p2c0ecc
37分钟前
22
0
第五周

1、查找/etc目录下大于1M且类型为普通文件的所有文件 2、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。 3、利用sed 取出ifconfig命令中本...

osc_hxm151is
38分钟前
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部