用python实现快速排序,python如何降序排列

  用python实现快速排序,python如何降序排列

  当有序区间内有大量数据时,查找数据的插入位置会非常耗时。

  1.插入排序算法总是从有序间隔中搜索插入位置,并以此为起点。

  2.二分搜索法方法可以用来快速确定要插入的位置,所以有了插入排序算法的优化版本,也叫二分搜索法和插入算法。

  实例

  definsert _ sort 2(data _ list):

  二分搜索法函数用于确定要在有序间隔中插入的元素的插入位置。

  Count=0#计算循环次数。

  长度=len(数据列表)

  for range(1,length) : #默认情况下,第一个位置的元素是排序区间,所以下标从1开始。

  打印(数据列表)

  Wait _ insert _ data=data _ list[I]# #等待元素被插入

  move_index=i

  Insert _ index,count 1=binary _ search(data _ list[03360 I],wait _ insert _ data) #查找插入位置

  Count=count1#计算循环数需要加上二分搜索法的循环数。

  while move _ index insert _ index 3360 #将元素移动到要插入的位置。

  计数=1

  数据列表[移动索引]=数据列表[移动索引-1]

  move_index-=1

  数据列表[插入索引]=等待插入数据#插入操作

  打印(数据列表)

  打印(f 循环总数为{count} )

  returndata_list

  defbinary_search(data_list,data):

  输入:有序列表,以及要查找的数据。

  输出:数据应该在有序列表的插入位置。

  Count变量纯粹用于计算循环次数,在实际应用中可以删除。

  计数=0

  长度=len(数据列表)

  低=0

  高=长度-1

  # #如果给定元素大于或等于最后一个元素,则将其插入最后一个元素位置之后。

  # #如果它小于第一个元素,则插入位置0

  if data=data _ list[length-1]: return length,0

  elifdatadata _ list[0]: return 0,0

  insert_index=0

  whilelowhigh-1:

  计数=1

  Mid=(低高)//2 # Python中的除法结果默认使用//

  ifdata_list[mid]data:

  高=中

  插入指数=高

  else:

  低=中

  Insert_index=low 1#如果值相同或者值大于mid的值,那么插入位置在其后。

  Return _ index,计数。以上是python插入排序的优化方法。希望对你有帮助。更多python学习方向:Python基础课程

  本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: