Python-二分及bisect模块
参考代码:
1 newlist = [37, 99, 73, 48, 47, 40, 40, 25, 99, 51] 2 newlist = sorted(newlist) # [25, 37, 40, 40, 47, 48, 51, 73, 99, 99] 3 4 def inster_sort(newlist, num): 5 l = newlist[:] 6 low = 0 7 high = len(l) 8 while low < high: 9 mid = (high + low) // 2 10 if num < newlist[mid]: 11 high = mid 12 else: 13 low = mid + 1 14 l.insert(high,num) 15 # l.insert(low,num) 16 return l 17 18 # print(inster_sort(newlist, 100)) 19 l = newlist 20 for i in [10, 100,50,98,100,49,40,40]: 21 l = inster_sort(l, i) 22 print(l) 23 print('____------__________------') 24 for i in [10, 100,50]: 25 l = inster_sort(newlist, i) 26 print(l)
结果打印:
1 [10, 25, 37, 40, 40, 47, 48, 51, 73, 99, 99] 2 [10, 25, 37, 40, 40, 47, 48, 51, 73, 99, 99, 100] 3 [10, 25, 37, 40, 40, 47, 48, 50, 51, 73, 99, 99, 100] 4 [10, 25, 37, 40, 40, 47, 48, 50, 51, 73, 98, 99, 99, 100] 5 [10, 25, 37, 40, 40, 47, 48, 50, 51, 73, 98, 99, 99, 100, 100] 6 [10, 25, 37, 40, 40, 47, 48, 49, 50, 51, 73, 98, 99, 99, 100, 100] 7 [10, 25, 37, 40, 40, 40, 47, 48, 49, 50, 51, 73, 98, 99, 99, 100, 100] 8 [10, 25, 37, 40, 40, 40, 40, 47, 48, 49, 50, 51, 73, 98, 99, 99, 100, 100] 9 ____------__________------ 10 [10, 25, 37, 40, 40, 47, 48, 51, 73, 99, 99] 11 [25, 37, 40, 40, 47, 48, 51, 73, 99, 99, 100] 12 [25, 37, 40, 40, 47, 48, 50, 51, 73, 99, 99]
打印结果
2、bisect 模块:
举例:
1 import bisect 2 newlist = [37, 99, 73, 48, 47, 40, 40, 25, 99, 51] 3 newlist = sorted(newlist)# [25, 37, 40, 40, 47, 48, 51, 73, 99, 99] 4 n = bisect.bisect(newlist, 20) 5 print(n) 6 n = bisect.bisect_left(newlist, 40) 7 print(n) 8 bisect.insort(newlist, 40) 9 print(newlist)
打印:
0 2 [25, 37, 40, 40, 40, 47, 48, 51, 73, 99, 99]
bisect模块介绍:
3、举例:
1 def foo(score): 2 scorelst = [60, 70, 80, 90, 100] 3 scores = 'edcba' 4 return scores[bisect.bisect(scorelst, score)] 5 print(foo(80))
转载于:https://www.cnblogs.com/JerryZao/p/9665218.html
Python-二分及bisect模块相关推荐
- Python中的bisect模块
Python中的bisect模块可以在列表插入元素之后维持列表的有序状态,而不需要重新对列表排序.bisect有以下6个函数,这6个函数接受相同的参数: bisect.bisect_left(a, x ...
- python中的bisect模块与二分查找
1.bisect模块概述 bisect是python的内置模块, 用于有序序列的插入和查找. 插入的数据不会影响列表的排序, 但是原有列表需要是有序的, 并且不能是倒序. Bisect模块提供的函数有 ...
- python bisect_Python的bisect模块
Python的列表(list)类型内部是一个线性表,在线性表中查找元素复杂度为O(N),即调用list.index()的复杂的是O(N).当数据量较大时,应该使用二分查找优化,二分查找范围每次缩小一般 ...
- python bisect_python中bisect模块用法实例
本文实例讲述了python中bisect模块用法,分享给大家供大家参考. 具体方法分析如下: 这个模块只有几个函数,一旦决定使用二分搜索时,立马要想到使用这个模块. 示例代码如下: import bi ...
- python bisect_Python实现二分查找与bisect模块详解
前言 其实Python 的列表(list)内部实现是一个数组,也就是一个线性表.在列表中查找元素可以使用 list.index()方法,其时间复杂度为O(n) .对于大数据量,则可以用二分查找进行优化 ...
- Python二分查找与插入模块bisect
Python的二分查找与插入bisect模块,查询函数主要使用bisect.bisect(),bisect.bisect_left(),bisect.bisect_right(),插入函数主要使用bi ...
- Python bisect模块详解
背个书: bisect模块支持按排序顺序维护列表,而不必在每次插入后对列表进行排序.对于具有昂贵比较操作的长项目列表,这可能是对更常见方法的改进.之所以调用该模块,是bisect因为它使用基本的二分算 ...
- 【Python】详解 bisect 模块
目录 一.绪论 二.说明 2.1 bisect_left() 2.2 bisect_right() 2.3 bisect() 2.4 insort_left() 2.5 insort_right() ...
- python bisect_说说 Python 的 bisect 模块
bisect 模块包含两个主要函数( bisect 和 insort),它们内部利用二分查找算法,分别用于在有序序列中查找元素与插入元素. bisect /baɪˈsekt/ to divide st ...
- Python bisect模块
Python的bisect模块是内置模块,bisect模块实现了一个算法用于有序序列的插入和查找.. 在一些情况下,这比反复排序列表或构造一个大的列表再排序的效率更高.Bisect是二分法的意思,这里 ...
最新文章
- 现实世界的Windows Azure:采访Dot Net Solutions的首席执行官Dan Scarfe
- 转 VOSM:国人写的ASM/AAM人脸拟合库
- NYOJ 143 第几是谁?
- 黑暗的富士康服务器被黑厂商用户名密码被泄
- NutchServer的安全层
- python中selenium打开浏览器拿不到url_Selenium打开浏览器,但在Chrome和Firefox中都无法获取URL...
- 2020教育OMO模式落地应用研究报告
- 红橙Darren视频笔记 启动不在清单文件注册的activity 安卓8有效
- SAP License:统驭科目的集成修改
- 53 年 IT 老兵详谈传统网络到互联网的演变史
- java连接mysql数据库方法_java连接mysql数据库的方法详解
- 【目标检测】(12) 非极大值抑制 NMS 和 Soft-NMS,附TensorFlow完整代码
- 端到端无人驾驶文献学习:ChauffeurNet: Learning to Drive by Imitating the Best and Synthesizing the Worst
- MySQL面试题常见知识点总结
- Datawhale 天池二手车交易价格预测— Task1 赛题理解 +Task2 数据分析
- Evil Corp 团伙开始使用 LockBit Ransomware 逃避制裁
- Android相机预览设置适配及显示方式
- RubyProgramming:向Ruby之父学程序设计pdf
- Python中的pillow(PIL)
- 测试开发工具大全,看看有没有你使用的!
热门文章
- 【系列4】使用Dockerfile创建带tomcat的Centos Docker镜像
- Oracle 11g RAC搭建(VMware环境)UDEV(二)
- 如何关闭dell inspiron n4010的内置麦克
- iMindMap12思维导图如何制作导图教程
- 在 for 循环里写加号拼接字符串的那个同事,不见了~
- 一次简单的 JVM 调优,性能提升了15%
- 留学生吐槽阿里面试几宗罪:槽点太多,不符合阿里大企业形象!
- 2018,程序员要搭配这40条编程箴言!!!条条都是干货
- 我妈劝我找份稳定的工作
- python爬虫百度翻译997_python爬取百度翻译返回:{'error': 997, 'from': 'zh', 'to': 'en', ......