python递归排序算法,python实现合并排序

  python递归排序算法,python实现合并排序

  原理分析

  1.从中间位置将一个序列分成两个序列;

  2.根据第一步将这两个子序列分成两部分;

  3.直到所有子序列的长度都为1,也就是说,不能再有二等分截止。这时,两两合并成一个有序序列。

  实例

  defmerge(排列、低、中、高):

  #low和high是整个数组的第一个和最后一个位置索引,mid是中间位置索引。

  #i和J是指针,初始位置分别是两个有序序列的起始位置。

  #ltmp用于存储合并后的序列。

  I=低

  j=中间1

  ltmp=[]

  Whi=midandj=high3360 #只要两边都有数字

  Ifarr[i]arr[j]:#当左边的数字小于右边的数字时

  Ltmp.append(arr[i])#将左边的数字存储在Ltmp中

  I=1#左边的指针向右移动一个位置。

  Else:#当右边的数字小于左边的数字时

  Ltmp.append(arr[j])#将右边的数字存储到Ltmp中

  J=1#指针向右移动一个位置。

  #在上面的while语句执行后,左右两边都没有数字。

  WHI=MID: #当左边还有数字的时候

  Ltmp.append(arr[i])#将左边所有剩余的数字保存到Ltmp中。

  i=1

  Whilej=high:#当右边还有数字时

  Ltmp.append(arr[j])#将右边所有剩余的数字保存到Ltmp中。

  j=1

  Arr [low3360high1]=ltmp #将排序后的数组写回原始数组。

  Merge _ sort (arr,low,high) : # low和high是整个数组的第一个和最后一个位置索引。

  Iflowih3360 #至少有两个元素

  mid=(低高)//2

  Merge_sort(arr,low,mid)#递归分解左侧

  Merge_sort(arr,mid 1,high)#递归分解右侧

  Merge(arr,low,mid,high)#进行合并。以上是python归并排序的实现原理。希望对你有帮助。更多python学习方向:Python基础课程

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

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

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