折半插入默认待插入值左侧部分已经排好顺序,找到合适位置,对插入点右侧已排好序的部分后移一步操作,循环直到全部点排序完成

 1 '''
 2 折半插入
 3 时间复杂度O(pow(n,2)
 4 '''
 5 def Zheban_Px(arr):
 6     for i in range(1,len(arr)):
 7         if arr[i] < arr[i - 1]:#首先判断插入值左侧列表最大值是否大于插入的值,如果不大于,就不用排序,如果小于执行以下操作
 8             temp=arr[i]  #待插入值
 9             low=0
10             high=i-1
11             while low<=high : #很重要
12                 middle=int((low+high)/2)
13                 if arr[middle]<temp:
14                     low=middle+1
15                 else:
16                     high=middle-1
17
18             for j in range(i-1,high,-1):插入点右侧值全部后移
19                 arr[j+1]=arr[j]
20             arr[high+1]=temp #插入点
21     print(arr)
22
23 Zheban_Px([88,78,65,156,239,43])
24 输出:
25 [43, 65, 78, 88, 156, 239]

转载于:https://www.cnblogs.com/japyc180717/p/9419773.html

直接插入_折半插入(python)相关推荐

  1. 插入类排序--直接插入、折半插入、希尔

    一. 直接插入排序 1. 执行过程: 原始序列:49,38,65,97,76,13,27 1)一开始只看49 49        38,65,97,76,13,27 2)插入38.38<49,所 ...

  2. 插入排序:直接插入、交换插入、折半插入

    插入排序:把一个数插入到一个有序的序列中,并要求插入后此数据序列仍然有序.这种排序思想就是插入排序. 那么对于一个原始无序的序列,哪里找有序的部分呢?这个很简单,可以把序列分为两个部分,第一个元素是第 ...

  3. (1.3.3)插入排序:直接插入、交换插入、折半插入

    插入排序:把一个数插入到一个有序的序列中,并要求插入后此数据序列仍然有序.这种排序思想就是插入排序. 那么对于一个原始无序的序列,哪里找有序的部分呢?这个很简单,可以把序列分为两个部分,第一个元素是第 ...

  4. latex附录中放python代码_在Latex中插入Python代码

    这里指的插入是指最终能在生成的pdf中显示高亮的Python代码. 在Latex中插入Python代码,需要一个第三发的宏包pythonhighlight: https://github.com/ol ...

  5. C语言基本数据结构之五(折半插入,堆排序,冒泡排序,快速排序,并归排序)

    上一篇大概写了序列的查找算法,这次就聊聊序列的几种重要的排序(大神自动飘过~~~) 一.算法分析 1.1 直接插入排序 基本思想:将文件中的记录分为有序区.无序区,不断地从无序区中顺序提取记录,按关键 ...

  6. 插入排序:表折半插入

    在前一篇插入排序:表插入中.我们用静态链表的存储方式.直接插入的策略,构建了一种新的插入排序算法:表插入. 有人可能会想到:相同是静态链表的形式,为什么不使用更高效的折半插入策略呢?这样的想法真的非常 ...

  7. python将字符串逆序_为什么说Python是一门伟大的入门语言?(附免费教程)

    Python 是一门伟大的入门语言.作为一门伟大的编程语言,一定要具备一些特征,其中有五项特征是非常重要的: 非常棒的首次体验:就像书的开始,首先一定要能够"沉迷",学习新知识一定 ...

  8. 计算机编程导论python程序设计答案-学堂在线_计算机科学与Python编程导论_作业课后答案...

    学堂在线_计算机科学与Python编程导论_作业课后答案 答案: 更多相关问题 近代中国完全沦为半殖民地半封建社会的标志是:A.<马关条约>B.<辛丑条约>C.<凡尔赛和 ...

  9. 折半查找python实现

    折半查找python实现 折半查找是常用的查找方法(在按大小顺序排列中的数组或者列表中更是如此),与传统的顺序查找相比,它查找的效率更高. 算法思想 算法的思想很直接,也就是先把第一个和最后一个作为作 ...

最新文章

  1. 获取本地System权限
  2. es6模块与 commonJS规范的区别
  3. 怎么看python环境变量配置是否好了验证图片_简述验证Anaconda是否安装成功的两种方式和Anaconda环境变量配置过程...
  4. maven工程下 读取resource下配置文件
  5. 北大OJ(POJ 3237)鸡兔同笼
  6. 第十六天-面向对象02-成员
  7. ftl if else判断_为什么都不用 switch 而使用 if/ else 来做条件判断?
  8. Oracle中将小数转换成字符丢零.截取小数.除数为零解决法
  9. Yii2的redis扩展
  10. C语言实现简单的计算器(C语言入门1)
  11. drf 配置文件 过滤类 全局异常 接口文档
  12. 处理器仿存带宽_《CPU与内存的带宽搭配》
  13. 数据库:增删改查操作
  14. 戴尔r720服务器装爱快路由系统,笔记本虚拟机里安装爱快软路由做单臂路由
  15. 如何理解范德波尔方程
  16. SSM+jsp整合步骤(注解开发)
  17. java-net-php-python-springboot办公自动化系统计算机毕业设计程序
  18. Flink-作业提交流程
  19. [设计模式]设计模式SOLID原则
  20. 163邮箱怎么申请注册?邮箱收费版怎么收费?163邮箱收费版优势?

热门文章

  1. Java的jdk1.6与jre1.8中存在的差异
  2. zoj3802:easy 2048 again(状压dp)
  3. react-native---配置reactnative报红,run-Android时候报错unable to load script from assets 'index.android.bundl
  4. VSCode打开底部状态栏
  5. 在html中设置常量并做判断,写一篇我所理解的javascript编程规范
  6. 50岁,投资理财方面接触较少,手上有280万,该如何操作?
  7. 腰椎患者多运动好,还是多休息好?
  8. 银行存款都有哪些误区,你都有踩坑吗?
  9. 一发就会被秒赞的句子
  10. 深耕小而美的领域,也能过好一生