创新互联Python教程:python归并排序如何理解

说明

创新互联是专业的咸宁网站建设公司,咸宁接单;提供成都做网站、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行咸宁网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

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)])
    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学习指路:创新互联python教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

网页题目:创新互联Python教程:python归并排序如何理解
标题URL:http://www.hantingmc.com/qtweb/news9/279009.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联