首页 > 编程语言 >[Python手撕]归并排序

[Python手撕]归并排序

时间:2024-09-16 19:45:41浏览次数:1  
标签:mergesort 归并 return nums Python int 排序 nums1 nums2

class Solution:
    def sortArray(self, nums: List[int]) -> List[int]:

        def merge(nums1, nums2):
            if not nums1 and not nums2:
                return None
            if not nums1:
                return nums2
            if not nums2:
                return nums1

            len1 = len(nums1)
            len2 = len(nums2)

            index1 = 0
            index2 = 0

            res = []
            while index1 <= len1 - 1 and index2 <= len2 - 1:
                if nums1[index1] <= nums2[index2]:
                    res.append(nums1[index1])
                    index1 += 1
                else:
                    res.append(nums2[index2])
                    index2 += 1

            while index1 <= len1 - 1:
                res.append(nums1[index1])
                index1 += 1
            while index2 <= len2 - 1:
                res.append(nums2[index2])
                index2 += 1

            return res

        def mergesort(nums):
            length = len(nums)
            if length == 0:
                return None
            if length == 1:
                return nums
            if length > 1:
                return merge(
                    mergesort(nums[: length // 2]), mergesort(nums[length // 2 :])
                )

        return mergesort(nums)

标签:mergesort,归并,return,nums,Python,int,排序,nums1,nums2
From: https://www.cnblogs.com/DCFV/p/18416543

相关文章

  • .NET 一款免安装运行Python的渗透工具
    .NET一款免安装运行Python的渗透工具在网络安全领域,渗透测试是评估系统安全性的重要手段。Python作为一种功能强大且易于使用的编程语言,在渗透测试工具开发中得到了广泛应用。然而,Python环境的安装和配置可能会给渗透测试人员带来一些不便,尤其是在目标机器上缺乏管理员权限的情况......
  • 插入排序
    点击查看代码packageSort;importjava.util.*;//插入排序:扑克牌从第二张开始往前排,相当于分成已排区跟待排区publicclass插入{publicstaticvoidmain(String[]args){int[]a={3,4,8,1,13,15,11,9,2,0};//排序for(inti=1;i<a.leng......
  • 深入了解Python中的浮点数、自动转换、强制转换与增强赋值运算符
    本套课程在线学习视频https://pan.quark.cn/s/3a470a7bbe67Python是一种强类型语言,具有动态类型和自动内存管理的特性。在数学和科学计算中,浮点数(float)是非常重要的数据类型。本文将详细探讨浮点数的概念、自动转换、强制转换以及增强赋值运算符。通过详细的代码示例和运行结果,帮......
  • 20240917_213927 python 编码小题
    需求提示#在____________上补充代码#不要修改其他代码f=input("请输入一个单词:")print("{}".format("____________"))print("____________".format(f))......
  • 20240917_223927 python 编码小题
    需求提示#在____________上补充代码#不要修改其他代码defvfun(x,b):____________:x+=____________returnxlc=____________print(vfun(10,lc))......
  • Python最全教程(一)
    Python是什么?Python是一种计算机编程语言,属于面向对象编程语言。由“龟叔”(吉多·范罗苏姆)发明。GuidovanRossum  好了,不多说了,我们正式开始Python编程之旅!第一章   Python下载与基本语法介绍安装Python打开Python官网,出现以下界面。 2.点击‘Downloads’,......
  • [Python学习日记-23] Python v2 和 v3 中的字符编码
    简介    在Python中的字符编码(上)和Python中的字符编码(下)中学习了字符编码的理论知识那么就,我们把目光回到Python当中,下面我们来讲述一下Python2和Python3之间的一些关于编码的差别。Python2vsPython3的编码一、Python2    Python出来时还没有......
  • Python中的`raise`语句:如何优雅地控制错误
    引言在软件开发过程中,错误处理是不可避免的话题。良好的错误处理不仅能提高程序的稳定性,还能显著提升用户体验。Python通过异常机制提供了一种优雅的方式来管理这些意外情况。其中,raise语句作为触发异常的关键角色,其重要性不言而喻。本文将从基础语法入手,逐步深入探讨raise语句的......
  • Python编程之旅:定义自定义异常的艺术
    引言在实际开发过程中,我们经常会遇到各种各样的错误情况,如数据类型不符、资源访问失败等。这时候,合理地使用异常处理机制就显得尤为重要了。Python内置了许多异常类,但有时候它们并不能完全满足我们的需求。这时,就需要我们自己动手定义一些特定场景下的异常类型了。定义自定义异常......
  • 【负荷预测】基于CNN-GRU-Attention的负荷预测研究(Python代码实现)
         ......