已收藏
难度:简单
标签:暂无标签
题目描述
采用选择法对15个整数排序,排序完成后各整数按照从大到小的顺序排列。排序完成后输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。
输入
输入共有两行: 第一行输入15个整数. 第二行输入你要查找的整数.
输出
输出你要查找的整数在排好序的数组中是第几个元素.如果该数不在数组中,则输出“wucishu!”。如果输入的数在数组中有多个,则输出此数在排好序后的数组中第一次出现的位置.具体请见Sample Output .
样例输入复制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
15
样例输出复制
1
题目提供者:西南科技大学计算机学院C++程序设计实验指导书 v1.2
时空限制:1000ms/65535kb
通过次数:3578
提交次数:13914
def binarySearch(list,temp): l = 0 r = len(list) - 1 while l<=r: mid=l+(r-l)//2 if list[mid]<temp: r=mid-1 elif list[mid]>temp: l=mid+1 elif list[mid]==temp: return mid return -1 list=list(map(int,input().split())) n=int(input()) for i in range(0,len(list)-1): for j in range(i+1,len(list)): if list[i]<list[j]: list[i],list[j]=list[j],list[i] if binarySearch(list,n)+1==0: print("wucishu!") else: print(binarySearch(list,n)+1)
注意排序后的数组是从大到小的,依次不能使用普通的二分查找,而是要反号