623: 程序设计C 实验五 题目六 排序查找(python)

简介: 623: 程序设计C 实验五 题目六 排序查找(python)

已收藏

难度:简单

标签:暂无标签

题目描述

采用选择法对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)

注意排序后的数组是从大到小的,依次不能使用普通的二分查找,而是要反号

相关文章
|
22天前
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
63 4
|
26天前
|
Python
Python中几种lambda排序方法
【9月更文挑战第7天】在Python中,`lambda`表达式常用于配合排序函数,实现灵活的数据排序。对于基本列表,可以直接使用`sorted()`进行升序或降序排序;处理复杂对象如字典列表时,通过`lambda`指定键值进行排序;同样地,`lambda`也适用于根据元组的不同位置元素来进行排序。
|
7天前
|
数据处理 Python
python遍历文件夹所有文件按什么排序
python遍历文件夹所有文件按什么排序
|
8天前
|
数据处理 Python
Python遍历文件夹所有文件并按指定排序
Python遍历文件夹所有文件并按指定排序
10 0
|
2月前
|
Python
Python魔法:用一行代码实现数据排序
【8月更文挑战第31天】忘掉传统多行排序代码,本文揭秘如何使用一行Python代码快速对数据进行排序,同时深入探讨背后的原理和性能考量。
|
2月前
|
Python
【Python】对字典进行排序
该文档介绍了如何在Python中对字典进行排序的方法。
18 2
|
3月前
|
Python
Python小技巧:一种字符串的排序方式
Python小技巧:一种字符串的排序方式
20 0
|
2月前
|
算法 索引 Python
【Leetcode刷题Python】34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
解决LeetCode "在排序数组中查找元素的第一个和最后一个位置" 问题的方法。第一种方法是使用两次二分查找,首先找到目标值的最左边界,然后找到最右边界。第二种方法是利用Python的list.index()方法,先正序找到起始位置,再逆序找到结束位置,并给出了两种方法的Python实现代码。
47 0
|
2月前
|
Python
【Python】对key或values是datetime类型或时间字符串的字典dict排序
本文提供了针对字典中key为时间字符串或datetime类型时进行排序的解决方案,包括将时间字符串转换为datetime对象排序和直接对datetime类型的key排序的方法。
33 0
|
3月前
|
机器学习/深度学习 TensorFlow API
Keras是一个高层神经网络API,由Python编写,并能够在TensorFlow、Theano或CNTK之上运行。Keras的设计初衷是支持快速实验,能够用最少的代码实现想法,并且能够方便地在CPU和GPU上运行。
Keras是一个高层神经网络API,由Python编写,并能够在TensorFlow、Theano或CNTK之上运行。Keras的设计初衷是支持快速实验,能够用最少的代码实现想法,并且能够方便地在CPU和GPU上运行。
下一篇
无影云桌面