ag娱乐平台
你好,游客 登录 注册
背景:
阅读新闻

经典算法之二分查找(Python,Shell与Java实现)

[日期:2019-04-15] 来源:Linux社区  作者:webDepOfQWS [字体: ]

ag娱乐平台,第24届新丝路中国模特大赛的选手来自国内外18个赛区,除中国各地区外,其中还不乏有来自加拿大、东南亚、斯洛文尼亚等国家和地区的选手。因此角逐也相当激烈,总决赛当晚的比赛过程也是相当亮眼惊艳,除冠军外,当晚还选拔了本届模特大赛的男女亚军及季军和“全国十佳模特”,另外还有“最具T台表现力奖”“最具媒体价值奖”“最佳身材奖”“最佳上镜奖”“最具广告价值奖”“最佳潜质奖”“最佳才艺奖”以及饱受品牌商青睐的“金一国民女神奖”“荷马最佳运动风尚奖”“美丽之冠最具网络人气奖”。15号选手朱思涵当晚荣获金今正药业邀约签署为品牌形象大使。

此前,新海诚来华宣传时说“头一回知道有这么多人对自己的作品这么了解,很惊喜。”随着《你的名字。》在中国市场上映后的大热,新海诚又凭此收获了更多的影迷和支持。今日,官方公布了远在国外工作的新海诚特地为中国观众送上的一封手写信。导演也想以此表达自己对中国观众的感谢“《你的名字。》能被这么多人喜欢,现在还觉得难以置信。非常幸福,由衷致谢。” 中国小伙捐造血干细胞供德国患者 称做这事很幸福在吕老师的印象中,明明和亮亮没有发生过矛盾,家长也没向老师反映过类似的问题。但是,明明和军军是发生过小磨擦的。今年10月的一天,明明的家长曾向吕老师反映军军在课堂上讲话影响明明听课,吕老师了解情况后,军军当着老师的面向明明道了歉。事后,吕老师把他俩的座位进行了调换,俩人不再坐同排左右桌。事后,吕老师仔细观察过两个孩子的言行,没有发现异常情况,能够正常交往。

1、算法思想

 二分查找采用分而治之的思想。要求被查找的集合必须是有序的。主要思路:

  1. 根据起始位置和结束位置,确定中间位置。
  2. 拿目标值与中间位置的值做比较,假如目标值大于中间位置取值,则起始位置为中间位置加1。
  3. 假如目标值小于中间位置取值,则结束位置为中间位置减1。
  4. 直至起始位置小于等于结束位置,找到目标值的位置即索引。

2、代码实现

2.1、基于Python3.x实现

代码如下:

#coding:utf-8
def half_search(lst,key):
    start = 0
    end = len(lst) - 1
    while start <= end:
        mid = int(start + end  / 2)
        if  lst[mid] > key:
            end = mid - 1
        elif lst[mid] < key:
            start = mid + 1
        else:
            print("Matched the index of key %s is %s" %(lst[mid],mid))
            return mid
    return -1
l=[1,2,3,5,7]
half_search(l,2)

运行结果:

Matched the index of key 2 is 1

经典算法之二分查找

2.2、基于shell实现

代码如下:

#/bin/bash
function BinSearch(){
    declare -a arr=($1)
    key=$2
    start=0
    end=`expr ${#arr[*]} - 1`
        while [ ${start} -le ${end} ]
    do
        declare -i mid=$(((start+end)/2))
        if [ ${arr[mid]} -lt ${key} ];then
            start=$((mid+1))
        elif [ ${arr[mid]} -gt ${key} ];then   
            end=$((mid-1))
        else
            echo ${mid}
            break
        fi
   
   
    done
}
arr=(1  2 3 5 7 9)
echo "Index of 2 is:$(BinSearch "${arr[*]}"  2)"

运行结果:

Index of 2 is:1

经典算法之二分查找

2.3、基于Java实现

代码如下:

class binSearch{
    /定义二分查找的函数
    public static int  binSearch(int[] arr,int key){
        int start=0;
        int end=arr.length - 1;
        /int mid=(start+end) /2;
        while(start<=end){
            int mid = (start + end) / 2;
            if(arr[mid]<key){
                start=mid+1;
                }
            else if(arr[mid]>key){
                end=mid-1;               
                }
            else{
                System.out.print("Matched,index is:");
                return mid;
                }
           
            }
        return -1;
        }
    /验证二分查找
        public static void main(String[] args){
    int key=2;
    int[] arr={1,2,3,5,7,9};
    int keyIndex=binSearch(arr,key);
    System.out.print(keyIndex);
}
}

运行结果:

Matched,index is:1

经典算法之二分查找

Linux公社的RSS地址ag娱乐平台/wwwc0b7linuxidcc0b7com/rssFeed.aspx

本文永久更新链接地址/wwwc0b7linuxidcc0b7com/Linux/2019-04/158113.htm

linux
相关资讯       二分查找  经典算法 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
黄金联赛重庆半决赛-海马Welove21分打爆晋级 美国7月制造业降温 新订单指数跌至一年低位 科普材料摘抄转基因谣言 当地食药监局向市民致歉 数字币交易平台OKEX回应:公众号的确被封 跟监管无关 两高今年要干这12件大事 将影响你的生活 “海归”创新创业所遇难题咋破解?人社部回应 工商总局:去年消费者投诉同比增44% 网购投诉增幅大 河南山谷现巨型“太极槐花宴” 采千斤野槐花做成 莫斯科北部一家诊所发生火灾 人员被紧急疏散 老太持矿泉水瓶协助指挥交通 交警:存安全隐患 发文庆祝芭芭拉去世 美加州大学女教授或被开除 广西出租车贴郑州空姐事件标语 执法部门勒令摘除
男子肾移植后身亡 家属起诉医院退21万肾源费被驳 电商大战烧至云商大战 京东云业务欲后发先至 中甲-马里一击制胜 梅州主场1-0延边取赛季首胜 俄怼回英国首相最后通牒 俄媒:两国正濒临战争边缘 京媒:恒大正处于新老交替时期 短期没能力全华班 小伙把应聘未录取公司当旅馆 蹭睡近半年还偷东西 牛汇:美指空头再度发威 避险缓和难阻金价上涨 扒一扒北京选中的新秀:年轻版常林 潜力爆表 董明珠出席股东大会因没有掌声发飙:格力没亏待你们(附视… 成都市民使用ofo扫到故障车 报修后仍被收使用费 [新浪彩票]足彩18086期冷热指数:巴国际大热难胜 俄通信部长:不认为中国移动进入俄市场存在障碍
网评:北京总能在逆境中反弹 冠军底蕴依旧在 德拉吉:欧元区货币政策仍需耐心和坚持 俄罗斯演练公路起降战斗机 结果只做了触地复飞 美联储布拉德:美国经济有很大的潜力继续增长 天津政府大力发展智能产业 真金白银吸引人才 国务院扶贫办主任:避免扶贫资源分配不公现象发生 美常驻联合国代表:俄任何时候都不会成为美国朋友 男子吞18厘米金属针 1月后就医面色苍白直不起腰 荣克:欧盟建议美国在液化气领域合作换取豁免关税 德国电信、英特尔和华为完成首个5G互操作性开发测试 传苹果将弃用高通芯片 高通股价应声下跌 统编教材编写专家回应:语文历史教材为什么这样改 徐新:冬训良好但拉伤心急如焚 不受U23新政影响 ag娱乐平台