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="")#真傻逼,没有这个会格式报错
相关文章
|
7月前
|
算法 Python
用 Python 实现堆排序。
用 Python 实现堆排序。
50 3
|
20天前
|
存储 搜索推荐 Python
用 Python 实现快速排序算法。
快速排序的平均时间复杂度为$O(nlogn)$,空间复杂度为$O(logn)$。它在大多数情况下表现良好,但在某些特殊情况下可能会退化为最坏情况,时间复杂度为$O(n^2)$。你可以根据实际需求对代码进行调整和修改,或者尝试使用其他优化策略来提高快速排序的性能
114 61
|
存储 算法 Python
Python递归算法详解
Python递归算法详解
|
7月前
|
搜索推荐 Python
使用python冒泡排序
使用python冒泡排序
52 0
|
7月前
|
Python
【python】二分查找
【python】二分查找
35 0
|
Python
Python|关于基数排序(1)
Python|关于基数排序(1)
33 0
|
算法 大数据 Python
Leedcode 二分查找每日两练 Python
Leedcode 二分查找每日两练 Python
80 0
Leedcode 二分查找每日两练 Python
|
算法 索引 Python
【Python 百炼成钢】二分法查找
【Python 百炼成钢】二分法查找
【Python 百炼成钢】二分法查找
|
存储 索引 Python
|
算法 索引 Python
二分查找法-Python学习
简介:二分查找法,也叫折半查找法。是计算机中最基本、最有用的基础算法之一。它讲述的是在有序的集合中搜索特定目标的过程。
122 0