1010: 折半查找的实现(python)

简介: 1010: 折半查找的实现(python)

收藏

难度:简单

标签:暂无标签

题目描述

编写程序实现折半查找算法。

输入

第一行是查找表的长度n

第二行是查找表中的数据元素 ;

第三行是要查找的数据元素的关键字.

输出

查找成功返回位序,不成功返回-1 ,第二行为比较的次数。

样例输入复制

11

5 13 19 21 37 56 64 75 80 88 92

100

样例输出复制

-1

4

count=0
nums=[]
n=input()
s=input()
target=int(input())
for i in s.split(" "):
    nums.append(int(i))
flag=0
left=0
right=len(nums)-1
while(left<=right):
    mid=left+(right-left)//2
    if nums[mid]>target:
        right=mid-1
        count=count+1
    elif nums[mid]<target:
        left=mid+1
        count = count + 1
    else:
        flag=1
        print(mid)
        break
if flag==0:
    print(-1)
print(count,end="")#真傻逼,没有这个会格式报错
相关文章
|
5月前
|
算法 Python
用 Python 实现堆排序。
用 Python 实现堆排序。
38 3
|
5月前
|
算法 索引 Python
Python3实现旋转数组的3种算法
Python3实现旋转数组的3种算法
44 0
|
11月前
|
算法 Python
Python算法——二叉树遍历
Python算法——二叉树遍历
110 0
|
11月前
|
算法 搜索推荐 索引
Python算法——选择排序
Python算法——选择排序
80 0
|
5月前
|
机器学习/深度学习 存储 算法
Python排序——二分查找
Python排序——二分查找
45 0
|
存储 算法 Python
Python递归算法详解
Python递归算法详解
|
5月前
|
Python
【python】二分查找
【python】二分查找
27 0
|
Python
Python|关于基数排序(1)
Python|关于基数排序(1)
30 0
|
算法 索引 Python
【Python 百炼成钢】二分法查找
【Python 百炼成钢】二分法查找
92 0
【Python 百炼成钢】二分法查找
下一篇
无影云桌面