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

算法从入门到入土cpp版

1. 排序

1. 快速排序

# include<iostream>
using namespace std;const int N = 100010;int q[N];void quick_sort(int q[], int l, int r)
{if(l>=r) return;int i=l-1,j=r+1,temp=q[l];while(i<j){do i++;while(q[i]<temp);do j--;while(q[j]>temp);if(i<j)swap(q[i], q[j]);}quick_sort(q, l, j);quick_sort(q, j+1, r);
}int main()
{int n;scanf("%d", &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;
}

从无序列数组中找有序的第k个数,其实改一下输出就可以了

# include<iostream>
using namespace std;const int N = 100010;int q[N];void quick_sort(int q[], int l, int r)
{if(l>=r) return;int i=l-1,j=r+1,temp=q[l];while(i<j){do i++;while(q[i]<temp);do j--;while(q[j]>temp);if(i<j)swap(q[i], q[j]);}quick_sort(q, l, j);quick_sort(q, j+1, r);
}int main()
{int n;int x;scanf("%d", &n);scanf("%d", &x);for(int i=0;i<n;i++)scanf("%d", &q[i]);quick_sort(q, 0, n-1);printf("%d", q[x-1]);return 0;
}

2. 归并排序

核心:分治-》双指针问题

  • 找分界点
  • 递归排序左右
  • 归并-》合二为一
#include<iostream>using namespace std;
const int N = 100010;void merge_sort(int q[], int l, int r)
{int temp[N]; //辅助数组if(l>=r) return;int mid=(l+r)>>1; //取中间值作为分界点//递归排序左右merge_sort(q, l, mid), merge_sort(q, mid+1, r);int k=0, i=l, j=mid+1;//用辅助数组接收左右两只更小的数while(i<=mid&&j<=r){if(q[i]<=q[j])  temp[k++]=q[i++];else temp[k++]=q[j++];}//当一只先用完,另一只直接挂在temp数组后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];
}int q[N];
int main()
{int n;scanf("%d", &n);for(int i=0;i<n;i++)    scanf("%d", &q[i]);merge_sort(q, 0, n-1);for(int i=0;i<n;i++)printf("%d ", q[i]);return 0;
}

相关文章:

算法从入门到入土cpp版

1. 排序 1. 快速排序 # include<iostream> using namespace std;const int N 100010;int q[N];void quick_sort(int q[], int l, int r) {if(l>r) return;int il-1,jr1,tempq[l];while(i<j){do i;while(q[i]<temp);do j--;while(q[j]>temp);if(i<j)swa…...

没有PDF密码,如何解密文件?

PDF文件有两种密码&#xff0c;一个打开密码、一个限制编辑密码&#xff0c;因为PDF文件设置了密码&#xff0c;那么打开、编辑PDF文件就会受到限制。想要解密&#xff0c;我们需要输入正确的密码&#xff0c;但是有时候我们可能会出现忘记密码的情况&#xff0c;或者网上下载P…...

Sqlyog 无法连接 8 版本的mysql caching_sha2_password could not be loaded

Sqlyog 无法连接 8 版本的mysql caching_sha2_password could not be loaded 1.问题背景 近期系统对Mysql 版本进行了升级&#xff0c;由原来的 5.7升至 8版本&#xff0c;在现场使用Sqlyog 作为数据库连接软件时&#xff0c;发现连接失败。 2.问题现象 使用Sqlyog配置完连…...

学习笔记三十三:准入控制

ResourceQuota准入控制器 ResourceQuota准入控制器限制cpu、内存、pod、deployment数量限制存储空间大小 LimitRanger准入控制器在limit名称空间创建pod&#xff0c;不指定资源&#xff0c;看看是否会被limitrange规则自动附加其资源限制创建pod&#xff0c;指定cpu请求是100m&…...

Unix/Linux C语言 获取控制台窗口尺寸

在Unix/Linux控制台编程&#xff0c;为了能输出好看一些&#xff0c;需要知道窗口宽度&#xff0c;当然使用支持很宽的窗口的终端也是个办法&#xff0c;但是实在没有很宽的终端怎么办呢&#xff0c;还是要从程序上想办法的。 判断控制台窗口宽度需要两个函数&#xff1a; isa…...

界面控件DevExpress WinForms Gauge组件 - 实现更高级别数据可视化

DevExpress WinForms控件包含了超过150个随时可用的仪表盘预设&#xff0c;包括圆形&#xff0c;数字&#xff0c;线性和状态指示器等&#xff0c;来帮助用户实现更高级的数据可视化。 DevExpress WinForms有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业…...

vivo 自研蓝河操作系统 BlueOS 发布:支持大模型、BlueXlink 协议实现万物互联

大家好&#xff0c;我是 Lorin , 2023 年 11 月 1 日&#xff0c;在今天的 2023 年 vivo 开发者大会上&#xff0c;vivo 自主研发的蓝河操作系统&#xff08;BlueOS&#xff09;正式亮相。这款操作系统被宣传为一款面向未来的智能操作系统&#xff0c;具备出色的支持能力&#…...

opencv复习(很乱)

2-高斯与中值滤波_哔哩哔哩_bilibili 1、均值滤波 2、高斯滤波 3、中值滤波 4、腐蚀操作 卷积核不都是255就腐蚀掉 5、膨胀操作 6、开运算 先腐蚀再膨胀 7、闭运算 先膨胀再腐蚀 8、礼帽 原始数据-开运算结果 9、黑帽 闭运算结果-原始数据 10、Sobel算子 左-右&#x…...

于璠访谈录 | AI 框架应该和而不同?

点击以下链接收听本期 “大咖访谈” 播客&#xff0c;与大咖面对面&#xff1a; 大咖访谈链接&#xff1a;于璠 | AI 框架应该和而不同&#xff1f; 刘天栋&#xff1a;访谈主持&#xff0c;开源雨林社区顾问、开源社联合创始人、ASF member 于璠&#xff1a;访谈嘉宾&#xf…...

基于Springboot+MYSQL+Maven实现的宠物医院管理系统(源码+数据库+运行指导文档+项目运行指导视频)

一、项目简介 本项目是一套基于springboot框架实现的宠物医院管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单…...

【数据结构二叉树】先序层序建立、递归非递归遍历层序遍历、树高、镜面、对称、子树、合并、目标路径、带权路径和等等

二叉树 文章目录 二叉树1. 二叉树的建立&#xff08;递归创建&#xff0c;结构体指针形式&#xff09;1.1. 先序建立1.2. 层序建立 2. 递归遍历(结构体指针)2.1. 先序遍历2.2. 中序遍历2.3. 后序遍历 3. 非递归遍历(结构体指针)3.1. 层次遍历3.2. 后序遍历(非递归) 4. 求树的高…...

Mybatis延迟加载(缓存)

延迟加载 分步查询的优点&#xff1a;可以实现延迟加载&#xff0c;但是必须在核心配置文件中设置全局配置信息&#xff1a;lazyLoadingEnabled&#xff1a;延迟加载的全局开关。当开启时&#xff0c;所有关联对象都会延迟加载 aggressiveLazyLoading&#xff1a;当开启时&…...

我对美团的看法,作为美团的股东,我都有点懵

我是美团的股东&#xff0c;你看股价&#xff0c;我都想骂人了。 这帖子就一句话。足以表明我的无奈。...

【Java】文件操作和IO

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录 文件概念文件的分类常见的文件类型文件系统的目录结构路径 Java中的文件操作文件系统相关操作绝…...

uniapp页面间传参的方法

在uniapp中&#xff0c;常见的页面传参方式有以下几种&#xff1a; URL传参 可以在跳转页面时&#xff0c;在url中添加参数&#xff0c;通过在目标页面的onLoad函数中的options参数获取传递的参数。示例代码如下&#xff1a; 在源页面中&#xff1a; uni.navigateTo({url: …...

vsan 7.0.3部署后常见问题

一、数据库版本问题 https://partnerweb.vmware.com/service/vsan/all.json 登录可以访问 Internet 的工作站。在浏览器中打开以下链接&#xff1a; https://partnerweb.vmware.com/service/vsan/all.json (右键单击&#xff0c;另存为)将此文件另存为 all.json。如果无法保存…...

【Git】Git使用指南+上传项目踩坑总结

记录Git 使用和命令解读&#xff1a; git init git add .git commit -m "first commit"git branch -M maingit remote add origin https://github.com/xxx.gitgit push -u origin main 这是最经常用到的使用 git上传项目的代码&#xff0c;值得注意的是&#xff0c…...

Django之登录注册

最近在准备上线一个网站&#xff08;基于django的编程技术学习与外包服务网站&#xff09;&#xff0c;所以会将自己的在做这个项目的过程中遇到的模块业务以及所涉及到的部分技术记录在CSDN平台里&#xff0c;一是希望可以帮到有需要的同学&#xff0c;二十以供自己后续回顾学…...

Android 10-11适配外部存储方案

Android Api 29 对文件和文件夹进行了重大更改。不允许使用外部存储&#xff0c;如下方法&#xff1a; Environment.getExternalStorageDirectory() /mnt/sdcard Environment.getExternalStoragePublicDirectory(“test”) /mnt/sdcard/test 只能使用内部存储 getExterna…...

软件测试/测试开发丨Python:易学、强大、多用途的编程语言

点此获取更多相关资料 Python 发展历史 Python 是一门高级编程语言&#xff0c;由 Guido van Rossum&#xff08;龟叔&#xff09; 在 1989 年发明&#xff0c;设计 Python 语言的初衷是为了创造一种介于 C 和 shell 之间&#xff0c;简洁方便&#xff0c;易学易用&#xff0…...

免费开源AMD Ryzen调试工具终极指南:从零掌握SMUDebugTool完整使用教程

免费开源AMD Ryzen调试工具终极指南&#xff1a;从零掌握SMUDebugTool完整使用教程 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目…...

NotebookLM实验结果可信吗?(P值阈值设定与多重检验校正全拆解)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;NotebookLM实验结果可信吗&#xff1f;&#xff08;P值阈值设定与多重检验校正全拆解&#xff09; NotebookLM 作为基于文档的AI实验助手&#xff0c;其内置的“实验模式”常用于自动比对不同提示策略或模型配…...

AndroidWheelView扩展开发:如何自定义滚轮样式与交互效果

AndroidWheelView扩展开发&#xff1a;如何自定义滚轮样式与交互效果 【免费下载链接】androidWheelView 仿照iOS的滚轮控件&#xff0c;从请吃饭apk反编译出来的 项目地址: https://gitcode.com/gh_mirrors/an/androidWheelView 想要为你的Android应用添加iOS风格的优雅…...

大牛直播SDK(SmartMediaKit)Windows平台多路RTSP转RTMP推流集成说明

文档概述 在安防监控、智慧园区、应急指挥、工业视觉、低空经济、无人机回传和多路摄像头上云等场景中&#xff0c;现场设备通常以 RTSP 方式输出视频流&#xff0c;而云端平台、直播分发平台或业务中台往往更倾向于接收 RTMP 流。此时&#xff0c;系统需要在边缘侧或 Windows…...

终极指南:如何用Blender 3MF插件实现3D打印数据无损传递

终极指南&#xff1a;如何用Blender 3MF插件实现3D打印数据无损传递 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 你是否曾经在3D打印工作流中遇到过这样的问题&#x…...

物联网接入层技术剖析(四):当epoll遇见MQTT

Netty与高性能网络服务、Linux高并发网络编程实战、从epoll到Netty&#xff1a;物联网接入层技术剖析、深入理解I/O多路复用、服务端网络编程进阶指南 Netty与物联网&#xff1a;当epoll遇见MQTT 0 写在前面 这个系列写了三篇&#xff0c;从 select 到 epoll&#xff0c;从内…...

手把手教你用SPI在两块STM32之间传浮点数(附避坑指南和字符串转换技巧)

手把手教你用SPI在两块STM32之间传浮点数&#xff08;附避坑指南和字符串转换技巧&#xff09; 在物联网传感器数据采集场景中&#xff0c;温湿度等模拟量通常以浮点数形式存在。当我们需要通过SPI协议在STM32主从机之间传输这类数据时&#xff0c;开发者往往会遇到小数位丢失、…...

如何用MusicFree插件构建你的跨平台音乐生态:从零开始的全流程指南

如何用MusicFree插件构建你的跨平台音乐生态&#xff1a;从零开始的全流程指南 【免费下载链接】MusicFreePlugins MusicFree播放插件 项目地址: https://gitcode.com/gh_mirrors/mu/MusicFreePlugins 厌倦了在不同音乐应用间反复切换&#xff1f;MusicFree插件系统为你…...

企业内如何通过 Taotoken 实现 API 密钥的集中管理与访问审计

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 企业内如何通过 Taotoken 实现 API 密钥的集中管理与访问审计 在将大模型能力引入企业内部的业务流或开发流程时&#xff0c;一个常…...

3步彻底告别重复GUI操作:零代码AI助手如何让你每天节省2小时

3步彻底告别重复GUI操作&#xff1a;零代码AI助手如何让你每天节省2小时 【免费下载链接】UI-TARS-desktop The Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra 项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS-desk…...