归并排序 刷题笔记
归并排序的写法
归并排序
分治+双指针
1.定义一个mid
if(l>=r)return ;
2.分治
sort(q,l,mid);
sort(q,mid+1,r);
3.
双指针
int i=l,j=mid,k=0;
将双序列扫入 缓存数组
条件 while(i<=mid&&j<=r)
两个数列比较大小 小的一方 进入缓存数组
4.
扫尾
while(i<=mid) temp[k++]=q[i++];
while(j<=r) temp[k++]=q[j++];
5.
复制 回去修改q[]数组的值
for (int i=l,j=0;i<=mid;i++,j++){
q[i]= temp[j];
}
代码
# include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<sstream>
const int N=1e5+10;
int q[N],temp[N];
int n;
void quick_sort(int q[],int l,int r){
if(l>=r){
return ;
}
int mid =(l+r)>>1;
quick_sort(q,l,mid);
quick_sort(q,mid+1,r);
int i=l,j=mid+1,k=0;
while(i<=mid&&j<=r){
if(q[i]<=q[j]){
temp[k++]=q[i++];
}else{
temp[k++]=q[j++];
}
}
while(i<=mid){
temp[k++]=q[i++];
}
while(j<=r){
temp[k++]=q[j++];
}
for(int i=l,j=0;i<=r;i++,j++){
q[i]=temp[j];
}
}
using namespace std;
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
scanf("%d",&q[i]);
}
quick_sort(q,0,n-1);
for(int i=0;i<n;i++){
printf("%d ",q[i]);
}
return 0;
}
相关文章:

归并排序 刷题笔记
归并排序的写法 归并排序 分治双指针 1.定义一个mid if(l>r)return ; 2.分治 sort(q,l,mid); sort(q,mid1,r); 3. 双指针 int il,jmid,k0; 将双序列扫入 缓存数组 条件 while(i<mid&&j<r) 两个数列比较大小 小的一方 进入缓存数组 4. 扫尾 while(…...
字节一面:TCP 和 UDP 可以使用同一个端口吗?
数据包是计算机网络通信的核心,包含头部和数据负载。TCP和UDP协议在传输层使用端口号区分服务和应用。操作系统通过IP头部中的协议字段和端口号来管理网络流量,确保TCP和UDP流量即使共用端口号也不会相互干扰。 在现代计算机网络中,数据传输…...

java guide 八股
Java语言特点 简单易学、面向对象(继承、封装、多态)、平台无关性(Java虚拟机jvm)、支持多线程、可靠、安全、高效、支持网络编程、编译与解释共存 JVM:Java虚拟机(跨平台的关键) JREÿ…...
Windows上使用client-go远程访问安装在本地WMware上的Linux虚拟机里的minikube
我在自己的Windows上安装了WMware,并在WMware上安装了CentOS操作系统,然后在CentOS上创建了一个叫minikube的用户,使用minikube用户启动了一个minikube集群,但是我在Windows上使用client-go并无法连通minikube,搜遍全网…...
Linux/Ubuntu/Debian基本命令:命令行历史记录
一组与类 Unix 环境中的命令行(Terminal)历史记录和命令调用相关的键盘快捷键: Ctrl R: 启动对以前使用过的命令的反向搜索。 当你键入时,它将查找并显示与输入的字符匹配的最新命令。Ctrl G: 退出历史搜索模式,不运行命令。 如…...
倒计时32天
L1-032 Left-pad - 2024团体程序设计天梯赛(历年真题)练习集 (pintia.cn) #include<bits/stdc.h> using namespace std; #define int long long const int N2e56; const int inf0x3f3f3f3f; void solve() {int n;char s;cin>>n>>s;ge…...

模型驱动架构MDA
MDE 模型驱动工程(MDE, Model-Driven Engineering)是软件工程的一个分支,它将模型与建模拓展到软件开发的所有方面,形成一个多维建模空间,从而将工程活动建立在这些模型的映射和转换之上。[1] MDE的基本原则是将模型视…...
std::error::Error 和 std::io::Error 的区别和用法
std::error::Error 和 std::io::Error 在 Rust 中都是用于错误处理的类型,但它们各自有不同的用途和场景。 std::error::Error: std::error::Error 是一个 trait,它定义了错误处理的基本接口。这个 trait 通常由其他具体的错误类型实现&…...

16 OpenCV Laplance算子
文章目录 图像的二阶导数Laplance算子代码示例 图像的二阶导数 在二阶导数的时候,最大变化处的值为零即边缘是零值。通过二阶 导数计算,依据此理论我们可以计算图像二阶导数,提取边缘。 Laplance算子 void Laplacian( InputArray src, Output…...

hardhat学习笔记
hardhat学习笔记会不定时填充内容。 初始化项目 yarn init 安装hardhat依赖 yarn add --dev hardhat 初始化 Hardhat yarn hardhat 代码格式化 yarn add --dev prettier prettier-plugin-solidity 项目中增加.prettierrc 与 .prettierignore 配置文件统一格式࿰…...

算法刷题day28
目录 引言一、截断数组二、双端队列三、日期统计 引言 这几道题是周赛里的几道题目,第一道题目我没用这种方法,但还是做出来了,用的一种比较特殊的思考方法,就是把每一个点都判断出来,不满足要求的就舍弃,…...

vivado 使用Design Runs窗口、
使用Design Runs窗口 “设计运行”窗口显示在项目中创建的所有合成和实现运行。它包括用于配置、管理和启动运行的命令。 打开Design Run窗口 选择窗口 → Design Runs打开“Design Runs”窗口。 设计运行窗口功能 •每个实现运行都缩进显示在其子级的合成运行下面。 …...
基于YOLOv8的手机摄像头的自动检测系统
文章大纲 数据集网络爬虫开源数据集标注目标定义标注标准标注工具标签更换脚本自制数据集下载地址自动检测系统设计与搭建模型训练与准确率代码仓库下载地址参考文献与学习路径随着移动通信技术的飞速发展,消费者对移动终端的要求也越来越高,各厂商纷纷提出自己的特色卖点,其…...
Ubuntu18.04添加内核模块(字符设备)
Ubuntu18.04添加内核模块(字符设备) 虚拟机Ubuntu18.04(内核版本linux-5.4.0-135-generic) 参考 嵌入式Linux驱动开发(一)——字符设备驱动框架入门 1 编译内核模块 创建字符设备代码文件char_dev.c&a…...

PromptBreeder---针对特定领域演化和发展提示词的方法
原文地址:promptbreeder-evolves-adapts-prompts-for-a-given-domain 论文地址:https://arxiv.org/pdf/2309.16797.pdf 2023 年 10 月 6 日 提示方法分为两大类 硬提示是由人工精心设计的文本提示,包含离散的输入令牌;其缺点…...

Java后端八股文之Redis
文章目录 1. Redis是什么?2. Redis为什么这么快?3. 为什么要使用缓存?4. Redis几种使用场景:5. Redis的Zset底层为什么要使用跳表而不是平衡树、红黑树或者B树?6.Redis持久化6.1 什么是RDB持久化6.1.1RDB创建快照会阻塞…...
一维数组_与指定数相同的数的个数
任务描述 输出一个整数序列中与指定数字相同的数的个数。 输入格式: 第一行为N,表示整数序列的长度(N < 100); 第二行为N个整数,整数之间以一个空格分开; 第三行包含一个整数,为指定的整数m。输出格式: 输出为N…...

如何在Linux系统安装SVN并配置固定公网地址远程访问【内网穿透】
文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…...
获取webshell的十种方法
一、直接上传获取webshell 这种对php和jsp的一些程序比较常见,MolyX BOARD就是其中一例,直接在心情图标管理上传。php类型,虽然没有提示,其实已经成功了,上传的文 件url应该是http://forums/images/smiles/下…...

项目实战-tpshop商城项目
项目实战-tpshop商城项目 环境部署准备软件工具准备远程连接测试远程连接测试-查看虚拟机IP地址远程连接测试-检测本机与虚拟机是否连通远程连接测试-通过远程工具连接linux服务器 常见问题处理 环境部署项目技术架构介绍部署tpshop项目-tpshop验证数据库验证用户信息表熟悉商品…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...