linux下shellscript实现二分查找

本文介绍了一段使用bash脚本实现的高效查找特定元素在一系列数中的算法,通过逐步调整搜索范围来优化查找过程。适用于对算法效率有较高要求的场景。
#!/bin/bash
#program:calulate the times to find "k" in 1-n
#history:2016-2-26 MissZhou first release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
function find()
{
        declare -i low=1
        declare -i high=$(($1))
        declare -i mid
        declare -i res=0
        declare -i fn=$(($2))
        while [  $low -lt  $high  ]
        do
                mid=$(($high/2+$low/2))
                res=$(($res+1)) 
                if [ $mid -lt $fn ] ; then
                low=$(($mid+1))
                else
                high=$(($mid-1))
                fi
                echo "$mid";
        done
        echo "find $res times"
}
read -p "input range " n
read -p "input found " k
find n k 


一晚上的成果~所以说,新学一门语言还是得自己写例子^_^
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值