排序(7)归并排序

2023-11-11

6.归并排序:

将两个有序表合并为一个有序表.


	/// <summary>
	/// 归并排序.
	/// </summary>
	public void SortMethod7()
	{
		recNum = 0;
		int count = m_playerList.Count;
		int k = 1;
		while(k < count)
		{
			Merge(k,count);
			k*=2;
		}
		OutPutMsg();
	}
	void Merge(int len,int count)
	{
		int m = 0;
		int s1 = 0;
		int e1 = 0;
		int s2 = 0;
		int e2 = 0;
		int i = 0;
		int j = 0;
		List<Player> temps = new List<Player>();
		while(s1 + len < count)
		{
			s2 = s1 + len;
			e1 = s2 - 1;
			e2 = (s2 + len -1) < count ? (s2 + len -1):count;
			j = s2;
			i = s1;
			
			while(i <= e1 && j <= e2)
			{
				if(m_playerList[i].level >= m_playerList[j].level)
				{
					temps.Add(m_playerList[i++]);
				}
				else
				{
					temps.Add(m_playerList[j++]);
				}			
			}
			while(i <= e1)
			{
				temps.Add(m_playerList[i++]);
			}
			while (j <= e2)
			{
				temps.Add(m_playerList[j++]);
			}
			s1 = e2 + 1;
		}
		i = s1;
		while(i < count)
		{
			temps.Add(m_playerList[i++]);
		}
		for(i = 0;i < count;i++ )
		{
			m_playerList[i] = temps[i];
		}
	}



归并排序时间复杂度:0(nlog2n) ,空间复杂度:0(n)这个主要是temps临时存放了。


这个排序也理解了,就是一下不能马上写出来。



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

排序(7)归并排序 的相关文章

  • 华为路由交换设备配置综合实验(实验六合一)

    华为路由交换设备配置综合实验 单臂路由 三层交换 动静路由 VRRP路由 DHCP中继 捆绑Etrunk链路 实验六合一 实验拓扑图 目的 实现全网各个PC之间的互联互通 全部实验脚本如下 以下脚本直接复制即可使用 一 实现右部DHCP中继
  • CocosCreator之KUOKUO教你如何用瓦片地图生成碰撞赛车道

    本次引擎v2 0 10 目标 瓦片地图生成碰撞赛车道 过程 首先 我们需要撸一个瓦片地图 很简单的地图 分两层 墙和地面 然后 在CocosCreator中直接拖进层级管理器就行 然后你就会发现层自动形成节点并挂载组件了 然后给wall和c
  • 如何使用Python进行数据分析

    Python是一种通用编程语言 也被广泛应用于数据科学领域 Python的强大之处在于其庞大的生态系统和可扩展性 在本篇博文中 我们将讨论如何使用Python进行数据分析 1 安装Python及其库 首先 您需要安装Python并配置其环境
  • MYSQL删除表的记录后如何使ID从1开始

    转载于https www cnblogs com no7dw archive 2010 04 16 1713240 html YSQL删除表的记录后如何使ID从1开始 MYSQL删除表的记录后如何使ID从1开始 http hi baidu
  • bp神经网络算法的优缺点,bp神经网络缺点及克服

    前馈神经网络 BP神经网络 卷积神经网络的区别与联系 一 计算方法不同1 前馈神经网络 一种最简单的神经网络 各神经元分层排列 每个神经元只与前一层的神经元相连 接收前一层的输出 并输出给下一层 各层间没有反馈 2 BP神经网络 是一种按照
  • Python探索性数据分析(EDA)统计数据和建模

    探索性数据分析 EDA 在统计学中 探索性数据分析是一种分析数据集以总结其主要特征的方法 通常使用统计图形和其他数据可视化方法 可以使用或不使用统计模型 但主要是 EDA 用于查看数据可以告诉我们超出正式建模的内容 从而对比传统的假设检验
  • 面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?

    一 QPS 每秒查询 QPS Queries Per Second意思是 每秒查询率 是一台服务器每秒能够相应的查询次数 是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准 互联网中 作为域名系统服务器的机器的性能经常用每秒查询率
  • 上传图片!MultipartFile接收

    图片上传 记录一下调用图片接口上传 调用接口为OBS上传 自己封装过后的接口参数为 一个类型为String 为OBS桶下文件名称 一个为MultipartFile类型 需要调用的实现 生成本地二维码 本地保存 存储地址为项目目录下 之后调用
  • 监测本地文件变化,上传新文件至FTP(附python代码)

    通过循环不断的监测本地文件变化 一旦发现新的文件 就上传新文件至FTP coding utf 8 filezilla客户端 14148 admin coding utf 8 import os from ftplib import FTP
  • HBuilderX真机调试检测不到手机问题 IQQO9

    HBuilderX真机调试检测不到手机问题 1 开启usb调试功能 2 本人是iqqo 9 开启usb调试也检测不到 按下面操作进行
  • java主版本号_java比较版本号

    java比较版本号 比如1 0 3和1 2 1相比较考虑到可以用String的compareTo 方法 代码如下 public class MainClass public static void main String args Stri
  • 有关const *、* const 、const * const 之间的区别

    1 const 表示指针指向的值不可变 但是指针可以重新赋新地址 include
  • Fiddler-抓包步骤详解

    一 工作原理介绍 1 Fiddler抓包是在 客户端和服务器之间建立一个代理服务器 监听本机发出的请求和服务器返回的响应结果 允许监视 设置断点 甚至修改输入输出数据 2 Fiddler使用的代理地址是127 0 0 1 端口是8888 它
  • 从“白人饭”到美味佳肴,拓世AI为你打造独一无二的饮食计划

    最近 白人饭 作为一种饮食方式在社交媒体上火了 成为打工人新的 午餐之光 所谓 白人饭 就是花最少的功夫准备仅仅能维系基本器官正常运作的食物 主打生吃或者简单炒 比如一个丹麦网友晒出的同事的午饭就是几根小胡萝卜和青菜 德国网友中午只吃一个白
  • Pycharm同一目录下py文件相互调用

    1 首先确保所在目录是Python Package而不是一般的New Stratch File 或者是普通的Directory也可以 Python Package下有 init py或自己建空的 init py 2 pycharm不会将当前
  • 免费JS富文本编辑器 总有一款会适合你

    什么是富文本编辑器 概述 javascript Text Editor 我们平常在页面上写文章 或者 后台发布文章内容 或内容描述等 一直都是用的是富文本编辑器 包括很多论坛发帖的文字窗口也是典型的富文本编辑器 它跟office中的word
  • linux C函数之stat函数

    1 函数功能 通过文件名filename获取文件信息 并保存在buf所指的结构体stat中 2 函数原型 函数头文件 include
  • 用C语言实现DFT算法

    一 简介 离散傅里叶变换 Discrete Fourier Transform 缩写为DFT 是傅里叶变换在时域和频域上都呈离散的形式 将信号的时域采样变换为其DTFT的频域采样 在形式上 变换两端 时域和频域上 的序列是有限长的 而实际上
  • vue.js element radio 单选框选中切换不同内容

    代码 span 分区类型 span
  • 如何检测linux系统下ftp服务器是否开启

    查看下端口是不是开启 netstat an grep 21 查看进程 ps ef grep ftp

随机推荐

  • RTX2080Ti-深度学习环境配置

    最近新购置了一台服务器 被环境折腾了半天 在这里纪念一下安装的心酸历程 环境配置 ubuntu18 04 cuda10 0 cudnn7 3 1 tensorflow gpu1 12 0 1 下载显卡驱动 cuda cudnn cuda10
  • 逍遥模拟器拷贝android根目录文件,逍遥android模拟器怎么导出APK文件

    1 运行SDK Manager 选择模拟器 并运行模拟器3 点击开始 运行 输入cmd 打开cmd窗口 输入cd C Program Files android sdk windows platform tools 进入platform t
  • Win11将WSL做SSH服务器,实现通过局域网SSH远程连接到WSL上,并且开机自动启动,手把手教学

    前言 本人的需求是经常需要将自己的台式机作为服务器使用 但是工作的主力又是笔记本 在公司使用服务器 在家使用台式机 笔记本台式同步代码数据很麻烦 于是产生了这种需求 利用台式机的WSL搭建SSH服务器 局域网内笔记本可直接ssh连接到WSL
  • 数据结构视频教程 -《[麻省理工学院]_算法导论_翻译版》

    整个视频打包下载地址 史上最全的数据结构视频教程系列分享之 麻省理工学院 算法导论 翻译版 转载请保留出处和链接 更多优秀资源请访问 我是码农 MIT无论是在美国还是全世界都有非常重要的影响力 培养了众多对世界产生重大影响的人士 是全球高科
  • mysql 创建用户,指定数据库,表的读写权限常用命令

    mysql 创建用户 指定数据库 表的读写权限常用命令 老是记不住mysql命令 然后网上找了点资料 然后记录下来 方便查询使用 1 远程登录mysql mysql h ip u root p 密码 2 创建用户 格式 grant 权限 o
  • git在项目已存在的情况下拉取某个文件

    git在项目已存在的情况下拉取某个文件 切换到本地该分支后 git checkout Garrick name 如果是某个文件 git checkout Garrick a txt 如果是真个文件夹 文件夹名字为a git checkout
  • 稳压二极管及特性介绍

    稳压二极管及特性介绍 稳压二极管是一种特殊工艺制造的面结型硅半导体二极管 此类二极管杂质浓度比较高 空间电荷区的电荷密度比较大 该区域狭窄 容易形成强电场 当反向电压来临时 反向电流急剧增加 产生反向击穿 稳压管核心理论 稳压管未工作时 处
  • sqli-labs-less-13 post传参+布尔盲注

    Less 13 post 布尔盲注 首先通过burp suite抓包获取报文体 利用harkbar插件进行注入 判断闭合方式 uname or 1 1 passwd submit Submit 发现闭合方式为 uname passwd su
  • 90后的头上少了头发,多了压力

    我已经不怎么笑了 内心也没有以前那么波动了 就像一潭死水 扔个石头都激不起水花 一个刚刚下班的网友这样形容工作后的自己 下了班回到家不就轻松了吗 不 其实只有加班后的回家路上 在地铁上那一个小时可以算得上轻松 虽然拥挤 可地铁上的通勤路 却
  • Python二级(10)——Python的计算机生态

    一 知识导图 二 计算思维 1 人类在认识世界 改造世界过程中表现出三种基 本的思维特征 以实验和验证为特征的实证思维 以物理学科为代表 以推理和演绎为特征的逻辑 思维 以数学学科为代表 以设计和构造为特征 的计算思维 以计算机学科为代表
  • 解决org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back beca

    文章目录 1 复现错误 2 分析错误 3 分析spring的事务机制 3 1 入口程序 3 2 事务管理的主方法 3 3 细究各对象的获取 4 functionTwo方法抛异常后的回滚操作 5 functionOne方法尝试提交时的操作 6
  • 《区块链技术原理》笔记

    一 区块链的概念 侠义来讲 区块链是一种按照时间顺序将数据区块一顺序相连的方式组合成的一种链式数据结构 并以密码学方式保证的不可篡改和不可伪造的分布式账本 广义来讲 区块链技术利用链式数据结构来验证和存储数据 利用分布式节点共识算法来生成和
  • Java 单线程池、多线程池、同步、异步的实践

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 需求 二 解决方案 三 基本模块 1 定义线程池配置 处理异步请求 2 定义单线程池 处理顺序执行的异步请求 3 定义线程 执行具体的工作 4 定义接口API
  • “export ‘default‘ (imported as ‘VueRouter‘) was not found in ‘vue-router‘

    vue router 4使用时 报上面的错 代码是这么写的 import VueRouter from vue router const Test template h1 测试 h1 const routes name Test path
  • uni-app编写轮播图

    使用usw就会显示swiper的快捷代码
  • ReduceTask工作机制图解

    1 Copy阶段 ReduceTask从各个MapTask上远程拷贝一片数据 并针对某一片数据 如果其大小超过一定阈值 则写到磁盘上 否则直接放到内存中 2 Merge阶段 在远程拷贝数据的同时 ReduceTask启动了两个后台线程对内存
  • ARM体系结构简介 —— 迅为

    目录 单片机和ARM处理器 内存管理单元 MMU 高速缓冲存储器 CACHE 指令集 ARM的指令系统 ARM处理器工作模式 ARM处理器的内部寄存器 ARM处理器的异常 ARM中断向量 ARM架构的发展 单片机和ARM处理器 内存管理单元
  • 10. adb截图命令

    adb截图命令 adb shell screencap 输入以下命令进行截屏 adb shell screencap sdcard screen png 将截图上传到PC的F盘 已创建目录F screenshot adb pull sdca
  • docker 笔记1

    目录 1 为什么有docker 2 Docker 的核心概念 3 容器与虚拟机比较 3 1传统的虚拟化技术 3 2容器技术 3 3Docker容器的有什么作用 3 4应用案例 4 docker 安装下载 4 1CentOS Docker 安
  • 排序(7)归并排序

    6 归并排序 将两个有序表合并为一个有序表