当前位置: 首页 > news >正文

leetcode88.合并两个有序数组(简单题!)

思路:合并两个数组,再进行排序(利用快速排序)

class Solution(object):def quicksort(self, num, i, j):if i>=j: # 跳出循环的条件要出来return left = iright = jtemp = num[i]while left < right:while left < right and temp <= num[right]:right -= 1num[left] = num[right]while left < right and temp >= num[left]:left += 1num[right] = num[left]num[left] = tempself.quicksort(num,i,left-1)self.quicksort(num,left+1,j)def merge(self, nums1, m, nums2, n):""":type nums1: List[int]:type m: int:type nums2: List[int]:type n: int:rtype: None Do not return anything, modify nums1 in-place instead."""nums1[m:] = nums2# 法一 利用用快速排序self.quicksort(nums1,0,len(nums1)-1)# return nums1# 法二 直接调用函数sort()# nums1.sort()

时间复杂度:O((m+n)log(m+n))

空间复杂度:最坏情况下O(m+n)    # 每层树每个节点都开辟空间来算的话是这样  ?? ??但是这里一般按照O(log(m+n))因为递归树有log(m+n)层。

快速排序的空间复杂度分析

快速排序的空间复杂度由以下两部分组成:

  1. 递归栈空间:这部分空间用来保存每次递归调用时的函数参数、局部变量和返回地址等信息。

  2. 临时空间:这部分通常是用于存储在排序过程中临时需要的变量,但在经典的快速排序实现中,这部分空间是常数级的。其实不用考虑这部分了。

http://www.lryc.cn/news/411444.html

相关文章:

  • 鸿蒙(HarmonyOS)DatePicker+TimePicker时间选择控件
  • 2024年和2025年CFA FRM CAIA ESG自己整理的资料
  • AMD第二季度财报:数据中心产品销售激增,接近总收入一半
  • ThreadLocal详解及ThreadLocal源码分析
  • FastGPT、Dify、Coze产品功能对比分析
  • 【Linux】缓冲区的理解
  • 基于单片机的电梯控制系统的设计
  • IP-GUARD文档云备份服务器迁移数据操作说明
  • linux常用命令ls详细说明
  • Python3网络爬虫开发实战(4)数据的存储
  • 《C++基础入门与实战进阶》专栏介绍
  • 每天一个数据分析题(四百五十)- 数据清洗
  • 昇思25天学习打卡营第XX天|Pix2Pix实现图像转换
  • 数据结构经典测试题5
  • React Native初次使用遇到的问题
  • 2024西安铁一中集训DAY28 ---- 模拟赛(简单dp + 堆,模拟 + 点分治 + 神秘dp)
  • 【论文阅读笔记 + 思考 + 总结】MoMask: Generative Masked Modeling of 3D Human Motions
  • Mojo控制语句详解
  • web安全基础学习
  • 天气预报的爬虫内容打印并存储用户操作
  • OrangePi AI Pro 固件升级 —— 让主频从 1.0 GHz 到 1.6 GHz 的巨大升级
  • 学习大数据DAY27 Linux最终阶段测试
  • ctr管理containerd基本命令
  • rust 初探 -- 路径(path)
  • XXE -靶机
  • vue2 搭配 html2canvas 截图并设置截图时样式(不影响页面) 以及 base64转file文件上传 或者下载截图 小记
  • 请大家监督:我要开启Python之路,首要任务最简单的搭建环境
  • http协议深度解析——网络时代的安全与效率(1)
  • 类和对象【下】
  • 面向未来的S2B2C电商供应链系统发展趋势与创新探索