参考代码:

 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模块相关推荐

  1. Python中的bisect模块

    Python中的bisect模块可以在列表插入元素之后维持列表的有序状态,而不需要重新对列表排序.bisect有以下6个函数,这6个函数接受相同的参数: bisect.bisect_left(a, x ...

  2. python中的bisect模块与二分查找

    1.bisect模块概述 bisect是python的内置模块, 用于有序序列的插入和查找. 插入的数据不会影响列表的排序, 但是原有列表需要是有序的, 并且不能是倒序. Bisect模块提供的函数有 ...

  3. python bisect_Python的bisect模块

    Python的列表(list)类型内部是一个线性表,在线性表中查找元素复杂度为O(N),即调用list.index()的复杂的是O(N).当数据量较大时,应该使用二分查找优化,二分查找范围每次缩小一般 ...

  4. python bisect_python中bisect模块用法实例

    本文实例讲述了python中bisect模块用法,分享给大家供大家参考. 具体方法分析如下: 这个模块只有几个函数,一旦决定使用二分搜索时,立马要想到使用这个模块. 示例代码如下: import bi ...

  5. python bisect_Python实现二分查找与bisect模块详解

    前言 其实Python 的列表(list)内部实现是一个数组,也就是一个线性表.在列表中查找元素可以使用 list.index()方法,其时间复杂度为O(n) .对于大数据量,则可以用二分查找进行优化 ...

  6. Python二分查找与插入模块bisect

    Python的二分查找与插入bisect模块,查询函数主要使用bisect.bisect(),bisect.bisect_left(),bisect.bisect_right(),插入函数主要使用bi ...

  7. Python bisect模块详解

    背个书: bisect模块支持按排序顺序维护列表,而不必在每次插入后对列表进行排序.对于具有昂贵比较操作的长项目列表,这可能是对更常见方法的改进.之所以调用该模块,是bisect因为它使用基本的二分算 ...

  8. 【Python】详解 bisect 模块

    目录 一.绪论 二.说明 2.1 bisect_left() 2.2 bisect_right() 2.3 bisect() 2.4 insort_left() 2.5 insort_right() ...

  9. python bisect_说说 Python 的 bisect 模块

    bisect 模块包含两个主要函数( bisect 和 insort),它们内部利用二分查找算法,分别用于在有序序列中查找元素与插入元素. bisect /baɪˈsekt/ to divide st ...

  10. Python bisect模块

    Python的bisect模块是内置模块,bisect模块实现了一个算法用于有序序列的插入和查找.. 在一些情况下,这比反复排序列表或构造一个大的列表再排序的效率更高.Bisect是二分法的意思,这里 ...

最新文章

  1. 现实世界的Windows Azure:采访Dot Net Solutions的首席执行官Dan Scarfe
  2. 转 VOSM:国人写的ASM/AAM人脸拟合库
  3. NYOJ 143 第几是谁?
  4. 黑暗的富士康服务器被黑厂商用户名密码被泄
  5. NutchServer的安全层
  6. python中selenium打开浏览器拿不到url_Selenium打开浏览器,但在Chrome和Firefox中都无法获取URL...
  7. 2020教育OMO模式落地应用研究报告
  8. 红橙Darren视频笔记 启动不在清单文件注册的activity 安卓8有效
  9. SAP License:统驭科目的集成修改
  10. 53 年 IT 老兵详谈传统网络到互联网的演变史
  11. java连接mysql数据库方法_java连接mysql数据库的方法详解
  12. 【目标检测】(12) 非极大值抑制 NMS 和 Soft-NMS,附TensorFlow完整代码
  13. 端到端无人驾驶文献学习:ChauffeurNet: Learning to Drive by Imitating the Best and Synthesizing the Worst
  14. MySQL面试题常见知识点总结
  15. Datawhale 天池二手车交易价格预测— Task1 赛题理解 +Task2 数据分析
  16. Evil Corp 团伙开始使用 LockBit Ransomware 逃避制裁
  17. Android相机预览设置适配及显示方式
  18. RubyProgramming:向Ruby之父学程序设计pdf
  19. Python中的pillow(PIL)
  20. 测试开发工具大全,看看有没有你使用的!

热门文章

  1. 【系列4】使用Dockerfile创建带tomcat的Centos Docker镜像
  2. Oracle 11g RAC搭建(VMware环境)UDEV(二)
  3. 如何关闭dell inspiron n4010的内置麦克
  4. iMindMap12思维导图如何制作导图教程
  5. 在 for 循环里写加号拼接字符串的那个同事,不见了~
  6. 一次简单的 JVM 调优,性能提升了15%
  7. 留学生吐槽阿里面试几宗罪:槽点太多,不符合阿里大企业形象!
  8. 2018,程序员要搭配这40条编程箴言!!!条条都是干货
  9. 我妈劝我找份稳定的工作
  10. python爬虫百度翻译997_python爬取百度翻译返回:{'error': 997, 'from': 'zh', 'to': 'en', ......