题目来源:《计算机算法设计与分析》,王晓东

设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。

输入格式:

输入有两行:

第一行是n值和x值;
第二行是n个不相同的整数组成的非降序序列,每个整数之间以空格分隔。

输出格式:

输出小于x的最大元素的最大下标i和大于x的最小元素的最小下标j。当搜索元素在数组中时,i和j相同。
提示:若x小于全部数值,则输出:-1 0
若x大于全部数值,则输出:n-1的值 n的值

输入样例:

在这里给出一组输入。例如:

6 5
2 4 6 8 10 12

输出样例:

在这里给出相应的输出。例如:

1 2

代码:

n, x = map(int, input().split(' '))
list_nums = input().split(' ')
a = -1
b = -1
for i in range(0, len(list_nums)):list_nums[i] = int(list_nums[i])
if x < list_nums[0]:print('-1 0')
elif x > list_nums[n - 1]:print('{} {}'.format(n - 1, n))
else:if x in list_nums:a = list_nums.index(x)b = list_nums.index(x)else:for i in range(0, len(list_nums)):if list_nums[i] > x:a = i-1b = ibreakprint('{} {}'.format(a, b))

Python改写二分搜索算法相关推荐

  1. [转载] python改写二分搜索算法_二分搜索算法模板python实现

    参考链接: Python中的二分搜索binary search 二分搜索的算法理解起来比较简单 但是边界条件容易出错,比如 循环结束条件中 left 和 right 的关系,更新 left 和 rig ...

  2. 改写二分搜索算法C++

    改写二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素位置i和大于x的元素位置j.当搜索元素在数组中时,i和j相同,均为x在数组中的位置. //二分查找 #include <bit ...

  3. 7-2 改写二分搜索算法 (20 分)

    题目来源:<计算机算法设计与分析>,王晓东 设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j.当搜索元素在数 ...

  4. PTA:改写二分搜索算法

    改写二分搜索算法 题目: 代码如下: #include<iostream> using namespace std; int binarySearch(int arr[], int x, ...

  5. 算法设计与计算(改写二分搜索算法)(教材2-3)

    二分搜索 设a[0:n-1]是一个已排好序的数组.请改写二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素的位置I和大于x的最大元素位置j public static int binar ...

  6. python实现黄金分割搜索算法+动态展示

    python实现黄金分割搜索算法+动态展示 前言 要求 黄金分割搜索算法原理 伪代码 代码编写 动态结果 python代码 前言 数值算法是跟数学关系比较密切的一门课程,主要是用计算机程序实现一些数学 ...

  7. Python查找-二分查找

    Python查找-二分查找 二分查找 折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务. 它的基本思想是,将n个元素分成个数大致相 ...

  8. python实现二分查找(折半查找)算法

    python实现二分查找算法 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 查找又称折半 ...

  9. Java1.使用二分搜索算法查找任意N个有序数列中的指定元素。 2.通过上机实验进行算法实现。 3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告。 4.至少使用两种方法进行编程,直接查

    1.使用二分搜索算法查找任意N个有序数列中的指定元素. 2.通过上机实验进行算法实现. 3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告. 4.至少使用两种方法进行编程,直接查找/递归 ...

最新文章

  1. python中struct_Python的Struct模块,用法以及个人理解
  2. Java Web开发入门 - 第5章 Git
  3. ListDefinition Tips
  4. 【iOS基础知识】const与宏的区别
  5. HDFS的exists函数解析
  6. bzoj5252 [2018多省省队联测]林克卡特树
  7. Fiori Elements里的Reference Facet
  8. QT中信号和信号槽详解
  9. 处理Weblogic卡住的线程
  10. codesys com库_CoDeSys官方系统库在线下载,替换国内下载服务器教程
  11. Web Hacking 101 中文版 十、跨站脚本攻击(一)
  12. 产品,是解决问题的载体
  13. python 自动登录网站_分析某网站,并利用python自动登陆该网站,下载网站内容...
  14. app登录界面背景 css_Google flutter这么火?撸一个APP登录界面(上)
  15. 300G的python资料等着你
  16. 2021-08-25Prompt
  17. java面试 bs cs_面试题思考:BS与CS的区别与联系
  18. CDN是什么?CDN有哪些用处?
  19. 机器学习入门——加州房价问题
  20. Defcon 2019 Qualify: redacted puzzle Writeup

热门文章

  1. 上海国际智能建筑展览会与上海国际智能家居展览会将于8月31日至9月2日举办...
  2. [K8S] 环境变量获取
  3. 【js】js将数值转为万,亿,万亿并保留两位小数
  4. 2018-12-06 18:09:55 [scrapy.spidermiddlewares.offsite] DEBUG: Filtered offsite request to 'weixin.so
  5. chrome扩展开发介绍和右键开发
  6. 四和能聚分析抖音做好这两点,运营更轻松
  7. [Unity官方直播] 详解Unity Asset的一生——学习笔记(一)
  8. 计算机主板上电时序图,主板上电时序图ppt课件.ppt
  9. 在办公室装警报、参加杨超越编程大赛——“开发者之友”声网Agora团队是怎样炼成的?...
  10. cmd重启网络服务命令