python培训之归并排序如何理解

发布时间:2023-01-30 09:37:28 人气:62 作者:多测师

  python归并排序如何理解

  说明

  1、归并排序是一种高效、稳定的合并运算排序算法,它是采用分治方法的典型应用。

  2、基本思想大致为:首先通过递归的方式将给定的数组二分为二分,再按大小比较进行两次大小比较排序,最后逐级合并完成总体的排序。

  归并排序更有效,它设置了n个列长,将数列分成小数列,需要logn步骤,每个步骤都是一个合并有序数列的过程,时间复杂性为O(nlogn),即O(n)。

  实例

  import random

  def ConfiationAlgorithm(str):

  if len(str) <= 1: #子序列

  return str

  mid = (len(str) / 2)

  left = ConfiationAlgorithm(str[:mid])#递归的切片操作

  right = ConfiationAlgorithm(str[mid:len(str)])

python培训之归并排序如何理解

  result = []

  #i,j = 0,0

  while len(left) > 0 and len(right) > 0:

  if (left[0] <= right[0]):

  #result.append(left[0])

  result.append(left.pop(0))

  #i+= 1

  else:

  #result.append(right[0])

  result.append(right.pop(0))

  #j+= 1

  if (len(left) > 0):

  result.extend(ConfiationAlgorithm(left))

  else:

  result.extend(ConfiationAlgorithm(right))

  return result

  if __name__ == '__main__':

  a = [20,30,64,16,8,0,99,24,75,100,69]

  print ConfiationAlgorithm(a)

  b = [random.randint(1,1000) for i in range(10)]

  print ConfiationAlgorithm(b)

  以上就是python归并排序的理解,希望对大家有所帮助。更多Python学习指路:请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线