2-归并排序

算法:归并排序
思想:分治法【问题分解,归并排序递归解决,合并解】
实现:将数组通过递归方式自顶向下的分解至最小单元,再自底向上进行合并,以此实现排序
时间复杂度: Θ ( n l g n ) \Theta(nlgn) Θ(nlgn)

import mathdef merge(nums, p, q, r): #用于将两个已排序好的数组合到一起;合并函数调用次数:n-1print([p, q, r], nums[p:q], nums[q:r])left = nums[p:q]right = nums[q:r]left.append(float('inf')) #极大值作为哨兵-简化代码right.append(float('inf'))i, j = 0, 0for k in range(p, r):if left[i] <= right[j]:nums[k] = left[i]i += 1else:nums[k] = right[j]j += 1print(nums, '\n')def merge_sort(nums, p, r):if r - p > 1:  # 当为1时,表明数组为最小单元,即数组中仅有一个元素,已排序好了q = math.floor((p + r) / 2) #划分索引merge_sort(nums, p, q)merge_sort(nums, q, r)merge(nums, p, q, r)if __name__ == '__main__':nums = [5, 2, 7, 4, 1, 3, 2, 6]merge_sort(nums, 0, len(nums))  # 随意指定数组起始和终止索引print(nums)

print值:

[0, 1, 2] [5] [2]
[2, 5, 7, 4, 1, 3, 2, 6] [2, 3, 4] [7] [4]
[2, 5, 4, 7, 1, 3, 2, 6] [0, 2, 4] [2, 5] [4, 7]
[2, 4, 5, 7, 1, 3, 2, 6] [4, 5, 6] [1] [3]
[2, 4, 5, 7, 1, 3, 2, 6] [6, 7, 8] [2] [6]
[2, 4, 5, 7, 1, 3, 2, 6] [4, 6, 8] [1, 3] [2, 6]
[2, 4, 5, 7, 1, 2, 3, 6] [0, 4, 8] [2, 4, 5, 7] [1, 2, 3, 6]
[1, 2, 2, 3, 4, 5, 6, 7] [1, 2, 2, 3, 4, 5, 6, 7]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/611896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

老胡的周刊(第123期)

老胡的信息周刊[1]&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 &#x1f3af; 项目 ai-video-search-engine[2] 随着 TikTok 和 …

206.【2023年华为OD机试真题(C卷)】最大N个数与最小N个数的和(JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-最大N个数与最小N个数的和二.解题思路三.题解代…

力扣173. 二叉搜索树迭代器

深度优先搜索 思路&#xff1a; 遍历二叉搜索树&#xff0c;左子树总比根节点小&#xff0c;右子树总比根节点大&#xff1b;先深度遍历左子树&#xff0c;然后返回其父节点&#xff0c;然后遍历其右子树节点&#xff1b;使用栈数据结构存储节点数据&#xff0c;借用其“后进先…

空间转录组与单细胞转录组联合分析——MIA,代码分享(Nature Biotechnology :)

​ 原文&#xff1a;Integrating microarray-based spatial transcriptomics and single-cell RNA-seq reveals tissue architecture in pancreatic ductal adenocarcinomas | Nature Biotechnology 研究者采用 MIA 联合 scRNAseq 和 ST 数据&#xff0c;分析原发性胰腺导管腺癌…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷②

2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷2 目录 需要竞赛软件包环境以及备赛资源可私信博主&#xff01;&#xff01;&#xff01; 2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷2 模块一 …

NX二次开发 Block UI 指定方位控件的应用

一、概述 NX二次开发中一般都是多个控件的组合&#xff0c;这里我首先对指定方位控件进行说明并结合选择对象控件&#xff0c;具体如下图所示。 二、实现功能获取方位其在选择面上原点的目标 2.1 在initialize_cb()函数中进行初始化&#xff0c;实现对象选择过滤面 //过滤平…

Unity中Shader面片一直面向摄像机

文章目录 前言一、实现思路1、 我们要实现模型面片一直跟着摄像机旋转,那么就需要用到旋转矩阵2、确定 原坐标系 和 目标坐标系3、确定旋转后坐标系基向量二、确定旋转后 坐标系基向量 在 原坐标系 下的值1、Z轴基向量2、假设Y轴基向量 和 世界空间下 的Y轴方向一致竖直向上3、…

go study twoday

交换两个数值 package mainimport "fmt"func main() {var num1 intvar num2 float32fmt.Println("请输入一个整数&#xff1a;")if _, err : fmt.Scanln(&num1); err ! nil {fmt.Println("输入错误&#xff1a;", err)return}fmt.Println(&q…

基于51单片机的蓄水池液位无人监测与自动调节系统设计

设计并实现基于51单片机的蓄水池液位无人监测与自动调节系统是一篇工程实践性很强的技术论文&#xff0c;以下是一个可能的论文提纲示例&#xff1a; **标题&#xff1a;** 基于51单片机的智能蓄水池液位监测与自动调节系统设计 **摘要&#xff1a;** 本文针对蓄水池液位实时…

在 ESP-IDF 环境下,使用标准 C 扩展 Micropython 模块

在 ESP-IDF 环境下&#xff0c;使用标准 C 扩展 Micropython 模块 源码地址 &#xff1a; https://gitee.com/Mars.CN/micropython_extend_example 一、 安装 ESP-IDF 环境 在其他课程中讲过&#xff0c;这里不再赘述&#xff0c;有机会再出教程吧&#xff0c;但需要注意的是…

全网独家:基于openEuler-20.03-LTS-SP4底包构建opengaussV5.0.1LTS的单机极简版数据库容器

本文尝试基于openEuler-20.03-LTS-SP4底包构建opengaussV5.0.1LTS的单机版极简版数据库容器。 一、软件包源 1、openEuler-20.03-LTS容器底包 openEuler-20.03-LTS-SP4 下载链接 sha256:24d8f51c1f3a79eb975c4e498cadd9055bfd708d66c15935ec46664d0f975a7b openEuler-dock…

QT上位机开发(键盘绘图控制)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 绘图是qt很基础的一个功能。通常&#xff0c;我们进行qt绘图的时候&#xff0c;一般会先创建一个qt view&#xff0c;这个相当于视图。接着创建一个…

YOLOv5改进 | 主干篇 | EfficientNetV2均衡缩放网络改进特征提取层

一、本文介绍 这次给大家带来的改进机制是EfficientNetV2,其在其V1版本通过均衡地缩放网络的深度、宽度和分辨率,以提高卷积神经网络的性能的基础上,又提出了一种改进的渐进式学习方法,通过在训练过程中逐步增加图像尺寸并适应性调整正则化来加快训练速度,同时保持准确性…

TinyLog iOS v3.0接入文档

1.背景 为在线教育部提供高效、安全、易用的日志组件。 2.功能介绍 2.1 日志格式化 目前输出的日志格式如下&#xff1a; 日志级别/[YYYY-MM-DD HH:MM:SS MS] TinyLog-Tag: |线程| 代码文件名:行数|函数名|日志输出内容触发flush到文件的时机&#xff1a; 每15分钟定时触发…

SQL SERVER 不拼接SQL如何条件查询

遇到条件查询&#xff0c;比如用户可以在界面上选择想要查询的条件。 我们常用的方法是拼接SQL&#xff0c;如下&#xff1a; declare id int, SQL NVARCHAR(50) set SQL select * from user where 11 if id is not null beginset SQL SQL and id id end 但是如果需…

【前端】使用javascript开发一个在线RGB颜色转换

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是是《前端》序列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌…

WebGL在实验室方向的应用

WebGL在实验室方向的应用涉及到实验过程的可视化、数据分析、模拟等方面。以下是一些WebGL在实验室领域的应用示例&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.分子模型和化学反应模拟&#xff…

Microsoft To-Do使用经验分享,使用Microsoft To-Do更好的规划自己的目标

为什么使用Microsoft To-Do 很久之前尝试使用过onenote,有道云笔记&#xff0c;印象笔记&#xff0c;小米便签等管理自己的日程&#xff0c;有一定的作用&#xff0c;但是功能过于简单或者冗余&#xff0c;没有达到时间管理的目的&#xff0c;没有办法坚持下来&#xff0c;通过…

C++类与对象基础(8)

目录 1. 隐式类型转换与关键字explicit: 1.1 隐式类型转换举例&#xff1a; 1.2 explicit关键字&#xff1a; 2. 友元&#xff1a; 2.1 友元函数&#xff1a; 2.2 友元类&#xff1a; 3. 内部类&#xff1a; 4. 勘误&#xff1a; 1. 隐式类型转换与关键字explicit: 1.1…

网安入门12-文件上传(黑白名单,00截断)

黑名单绕过 Pass-03 有的时候后端限制了一些黑名单&#xff0c;比如过滤后缀名.php 我们就可以用黑名单里没有的后缀名进行绕过&#xff0c;例如&#xff1a; 大小写&#xff1a;.phP .pHp .AsPphp1 .php2 .php3 .php9 .phtml&#xff08;成功率较高&#xff09;特殊文件名绕…