Python改写二分搜索算法
题目来源:《计算机算法设计与分析》,王晓东
设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改写二分搜索算法相关推荐
- [转载] python改写二分搜索算法_二分搜索算法模板python实现
参考链接: Python中的二分搜索binary search 二分搜索的算法理解起来比较简单 但是边界条件容易出错,比如 循环结束条件中 left 和 right 的关系,更新 left 和 rig ...
- 改写二分搜索算法C++
改写二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素位置i和大于x的元素位置j.当搜索元素在数组中时,i和j相同,均为x在数组中的位置. //二分查找 #include <bit ...
- 7-2 改写二分搜索算法 (20 分)
题目来源:<计算机算法设计与分析>,王晓东 设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j.当搜索元素在数 ...
- PTA:改写二分搜索算法
改写二分搜索算法 题目: 代码如下: #include<iostream> using namespace std; int binarySearch(int arr[], int x, ...
- 算法设计与计算(改写二分搜索算法)(教材2-3)
二分搜索 设a[0:n-1]是一个已排好序的数组.请改写二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素的位置I和大于x的最大元素位置j public static int binar ...
- python实现黄金分割搜索算法+动态展示
python实现黄金分割搜索算法+动态展示 前言 要求 黄金分割搜索算法原理 伪代码 代码编写 动态结果 python代码 前言 数值算法是跟数学关系比较密切的一门课程,主要是用计算机程序实现一些数学 ...
- Python查找-二分查找
Python查找-二分查找 二分查找 折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务. 它的基本思想是,将n个元素分成个数大致相 ...
- python实现二分查找(折半查找)算法
python实现二分查找算法 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 查找又称折半 ...
- Java1.使用二分搜索算法查找任意N个有序数列中的指定元素。 2.通过上机实验进行算法实现。 3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告。 4.至少使用两种方法进行编程,直接查
1.使用二分搜索算法查找任意N个有序数列中的指定元素. 2.通过上机实验进行算法实现. 3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告. 4.至少使用两种方法进行编程,直接查找/递归 ...
最新文章
- python中struct_Python的Struct模块,用法以及个人理解
- Java Web开发入门 - 第5章 Git
- ListDefinition Tips
- 【iOS基础知识】const与宏的区别
- HDFS的exists函数解析
- bzoj5252 [2018多省省队联测]林克卡特树
- Fiori Elements里的Reference Facet
- QT中信号和信号槽详解
- 处理Weblogic卡住的线程
- codesys com库_CoDeSys官方系统库在线下载,替换国内下载服务器教程
- Web Hacking 101 中文版 十、跨站脚本攻击(一)
- 产品,是解决问题的载体
- python 自动登录网站_分析某网站,并利用python自动登陆该网站,下载网站内容...
- app登录界面背景 css_Google flutter这么火?撸一个APP登录界面(上)
- 300G的python资料等着你
- 2021-08-25Prompt
- java面试 bs cs_面试题思考:BS与CS的区别与联系
- CDN是什么?CDN有哪些用处?
- 机器学习入门——加州房价问题
- Defcon 2019 Qualify: redacted puzzle Writeup
热门文章
- 上海国际智能建筑展览会与上海国际智能家居展览会将于8月31日至9月2日举办...
- [K8S] 环境变量获取
- 【js】js将数值转为万,亿,万亿并保留两位小数
- 2018-12-06 18:09:55 [scrapy.spidermiddlewares.offsite] DEBUG: Filtered offsite request to 'weixin.so
- chrome扩展开发介绍和右键开发
- 四和能聚分析抖音做好这两点,运营更轻松
- [Unity官方直播] 详解Unity Asset的一生——学习笔记(一)
- 计算机主板上电时序图,主板上电时序图ppt课件.ppt
- 在办公室装警报、参加杨超越编程大赛——“开发者之友”声网Agora团队是怎样炼成的?...
- cmd重启网络服务命令