博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分查找
阅读量:6288 次
发布时间:2019-06-22

本文共 1014 字,大约阅读时间需要 3 分钟。

递归和非递归的二分查找:

//非递归二分查找算法/*list:待查找的有序数组 *key:需要查找的元素 *n:数组长度 *return:返回查找的位置下标,返回-1表示未找到    */int binarySearch(element list[], element key, int n){    int left =0;    int right = n-1;    int mid=0;    while(left <= right)// <=,不能遗漏等于的情况    {        mid=(left+right)/2;        if(list[mid] == key)            return mid;        else if(list[mid] < key)            left=mid+1;        else            right=mid-1;    }        return -1;}//递归二分查找算法/*list:待查找的有序数组 *key:需要查找的元素 *left:数组下界 *right:数组上界 *return:返回查找的位置下标,返回-1表示未找到    */int binarySearch2(element list[], element key, int left, int right){    int mid=0;    if(left<=right)// <=,不能遗漏等于的情况    {        mid=(left+right)/2;        if(list[mid] == key)            return mid;        else if(list[mid] < key)            return binarySearch2(list, key, mid+1, right);        else            return binarySearch2(list, key, left, mid-1);    }else{        return -1;/*注意如果没有这种情况,返回值是永远是 mid,*/    }}

转载于:https://www.cnblogs.com/zjhnl/archive/2012/07/18/2597489.html

你可能感兴趣的文章
vue项目启动需安装?
查看>>
dedecms 系统的 data/rssmap.html不存在!更新了也没有。。。
查看>>
理解RESTful架构
查看>>
Zookeeper02
查看>>
ASP.NET编译执行常见错误及解决方法汇总之五(终结篇)
查看>>
编译器的工作过程
查看>>
Oracle 12C 新特性之表分区或子分区的在线迁移
查看>>
Centos 安装ixgbe驱动
查看>>
【BZOJ2589】 Spoj 10707 Count on a tree II
查看>>
select2使用时遇到的一些坑(4.x.x以上版本)
查看>>
(转).net中的session与cookies区别及使用方法
查看>>
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
查看>>
rsync同步工具的配置与使用
查看>>
浅谈现公司的Spring Cloud微服务框架
查看>>
【OCP-12c】CUUG 071题库考试原题及答案解析(17)
查看>>
RAC RMAN 备份 RMAN-03009 ORA-19504 ORA-27040 RMAN-06012 channel c3 not allocated 错误分析
查看>>
[转]指针函数与函数指针的区别
查看>>
【转】Terracotta's Scalability Story
查看>>
Python 词频统计
查看>>
种类并查集,TOJ(1706)
查看>>