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

快速排序 刷题笔记

思路 

分治+双指针 

在每个区间选定一个基准目标 

两个指针从数组的两边向中间推进 

使用

while循环判断

 do {i++;}while(q[i]<x); 
 do{j--;}while(q[j]>x);

每次这样做完就会找到q[i]>x,,,,q[j]小于x

此时我们交换 q[i] ,q[j]于是小于x的数分到了小于x的一侧 大于x的数分到了大于x的一侧

while(i<j){

        do {i++;}while(q[i]<x); 
        do{j--;}while(q[j]>x);


        if(i<j){swap(q[i],q[j]);}
    }

当做完这整个while 循环  就会形成所有小于 x的数在x一侧 而大于x的数在另一侧

在这个基础上 我们 不断划分区间 调整每一个局部区间 的顺序 从而达到整体有序

代码

#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,x=q[l+r>>1];
    while(i<j){

        do {i++;}while(q[i]<x); 
        do{j--;}while(q[j]>x);


        if(i<j){swap(q[i],q[j]);}
    }

        quick_sort(q,l,j);
        quick_sort(q,j+1,r);
}
int main()
{
    int n;
    cin>>n; 

    for (int i = 0; i < n; i ++ ) {
    cin>>q[i];}

    quick_sort(q, 0, n - 1);

    for (int i = 0; i < n; i ++ ) {
    cout << q[i]<<' ';
    }

    return 0;
}

相关文章:

快速排序 刷题笔记

思路 分治双指针 在每个区间选定一个基准目标 两个指针从数组的两边向中间推进 使用 while循环判断 do {i;}while(q[i]<x); do{j--;}while(q[j]>x); 每次这样做完就会找到q[i]>x,,,,q[j]小于x 此时我们交换 q[i] ,q[j]于是小于x的数分到了小于x的一侧 大…...

DAY by DAY 史上最全的Linux常用命令汇总----man

man是按照手册的章节号的顺序进行搜索的。 man设置了如下的功能键&#xff1a; 功能键 功能 空格键 显示手册页的下一屏 Enter键 一次滚动手册页的一行 b 回滚一屏 f 前滚一屏 q 退出man命令 h 列出所有功能键 /word 搜索word字符串 注意&#xff1a…...

十六、接口隔离原则、反射、依赖注入

接口隔离原则、反射、特性、依赖注入 接口隔离原则 客户端不应该依赖它不需要的接口&#xff1b;一个类对另一个类的依赖应该建立在最小的接口上。 五种原则当中的i 上一章中的接口&#xff0c;即契约。 契约就是在说两件事&#xff0c;甲方说自己不会多要&#xff0c;乙方会在…...

Docker 进阶

1、容器数据卷 什么是容器数据卷&#xff1f; 就是当容器内存在了mysql&#xff0c;在里面书写了数据&#xff0c;如果容器删除了&#xff0c;那么数据也就没有了&#xff0c;通过容器数据卷的技术&#xff0c;可以让容器内的数据持久化到Linux服务器上 操作 #docker run -…...

科研学习|论文解读——一种修正评分偏差并精细聚类中心的协同过滤推荐算法

知网链接 一种修正评分偏差并精细聚类中心的协同过滤推荐算法 - 中国知网 (cnki.net) 摘要 协同过滤作为国内外学者普遍关注的推荐算法之一&#xff0c;受评分失真和数据稀疏等问题影响&#xff0c;算法推荐效果不尽如人意。为解决上述问题&#xff0c;本文提出了一种改进的聚类…...

云计算项目十一:构建完整的日志分析平台

检查k8s集群环境&#xff0c;master主机操作&#xff0c;确定是ready 启动harbor [rootharbor ~]# cd /usr/local/harbor [rootharbor harbor]# /usr/local/bin/docker-compose up -d 检查head插件是否启动&#xff0c;如果没有&#xff0c;需要启动 [rootes-0001 ~]# system…...

2.经典项目-海量用户即使通讯系统

1.实现功能-完成注册用户 完成用户注册的步骤(客户端) 1.将User移动到common/message文件夹下 2.在message中新增注册用户的结构体 const (LoginMesType "LoginMes"LoginResMesType "LoginResMes"RegisterMesType "RegisterMes"…...

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通标志识别系统详解(深度学习模型+UI界面代码+训练数据集)

摘要&#xff1a;本篇博客详细介绍了利用深度学习构建交通标志识别系统的过程&#xff0c;并提供了完整的实现代码。该系统采用了先进的YOLOv8算法&#xff0c;并与YOLOv7、YOLOv6、YOLOv5等早期版本进行了性能评估对比&#xff0c;分析了性能指标如mAP、F1 Score等。文章深入探…...

VMware下创建虚拟机

Centos7是比较常用的一个Linux发行版本&#xff0c;在国内的使用比例比较高 安装完VMware一定要检查虚拟网卡有没有安装成功&#xff0c;如果没有VMnet1和VMnet8 虚拟机是无法上网的&#xff0c;就需要卸载重启电脑重新安装 控制面板—网络和Internet—网络连接 快捷方式打开&a…...

基于Ambari搭建大数据分析平台

一、部署工具简介 1. Hadoop生态系统 Hadoop big data ecosystem in Apache stack 2. Hadoop的发行版本 Hadoop的发行版除了Apache的开源版本之外&#xff0c;国外比较流行的还有&#xff1a;Cloudera发行版(CDH)、Hortonworks发行版&#xff08;HDP&#xff09;、MapR等&am…...

Vue template到render过程,以及render的调用时机

Vue template到render过程 vue的模版编译过程主要如下&#xff1a;template -> ast -> render函数&#xff08;1&#xff09;调用parse方法将template转化为ast&#xff08;抽象语法树&#xff09;&#xff08;2&#xff09;对静态节点做优化&#xff08;3&#xff09;生…...

阿里云服务器Ngnix配置SSL证书开启HTTPS访问

文章目录 前言一、SSL证书是什么&#xff1f;二、如何获取免费SSL证书三、Ngnix配置SSL证书总结 前言 很多童鞋的网站默认访问都是通过80端口的Http服务进行访问&#xff0c;往往都会提示不安全&#xff0c;很多人以为Https有多么高大上&#xff0c;实际不然&#xff0c;他只是…...

12 list的使用

文档介绍 文档介绍 1.list是可以在常数范围内的任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代 2.list的底层是带头双向链表循环结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指针指向其前一个元素和…...

控件交互与视图交互的区别

在实际应用中&#xff0c;控件交互和视图交互的区别主要体现在以下几个方面&#xff1a; (1)关注的对象不同&#xff1a;控件交互更关注于界面中的单个控件如何响应用户的操作&#xff0c;例如按钮的点击、列表项的滑动等。而视图交互则更关注于整个界面的布局、导航和交互设计…...

打包 加載AB包 webGl TextMeshPro 變紫色的原因

1.打包 加載AB包 webGl TextMeshPro 變紫色的原因 編輯器命令行https://docs.unity3d.com/cn/2019.4/Manual/CommandLineArguments.html 1.UnityHub 切換命令行參數 -force-gles 2.-force-gles&#xff08;仅限 Windows&#xff09;| 使 Editor 使用 OpenGL for Embedded Sys…...

美易官方:去年全球企业派息1.66万亿美元创新高

去年全球企业派息总额达到了1.66万亿美元&#xff0c;创下了历史新高。这一数字不仅彰显了全球企业的盈利能力和财务稳健性&#xff0c;也反映了它们对股东的责任感和对未来发展的信心。在这一背景下&#xff0c;微软和苹果这两家科技巨头在派息方面的表现尤为引人注目。 微软是…...

基于Springboot的面向智慧教育的实习实践系统设计与实现(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的面向智慧教育的实习实践系统设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&…...

【数据库-黑马笔记】基础-SQL

本文参考b站黑马数据库视频,总结详细全面的笔记 ,可结合视频观看1~26集 MYSQL 的基础知识框架如下 目录 一、MYSQL概述 1、数据库相关概念 2、MYSQL的安装及启动 二、SQL 1、DDL【Data Defination】 2、DML【Data Manipulation】 ①、插入 ②、更新和删除 3、 DQL【Data…...

MySQL性能分析:性能模式和慢查询日志的使用

目录 一、性能模式 步骤1. 启用性能模式 步骤2. 查询性能数据 步骤3. 分析性能数据 步骤4. 优化与调整 注意事项 二、慢查询日志 步骤1. 启用慢查询日志...

【哈希表算法题记录】15. 三数之和,18. 四数之和——双指针法

题目链接 15. 三数之和 思路 这题虽然放在哈希表的分类里面&#xff0c;但是用双指针法会更高效。 之前的双指针我们要么是一头left一尾right&#xff0c;要么是快fast慢slow指针。这里是要计算三个数的和&#xff0c;我们首先对数组进行从小到大的排序&#xff0c;先固定一…...

GLM-OCR惊艳效果:竖排+横排混排古籍OCR→自动方向判断+阅读顺序重建

GLM-OCR惊艳效果&#xff1a;竖排横排混排古籍OCR→自动方向判断阅读顺序重建 1. 项目概述与核心能力 GLM-OCR是一个专门为复杂文档理解设计的高性能多模态OCR模型&#xff0c;基于先进的GLM-V编码器-解码器架构构建。这个模型在处理古籍文档时表现出色&#xff0c;特别是能够…...

地址相似度匹配新选择:MGeo镜像5分钟快速部署,支持中文地址实体对齐

地址相似度匹配新选择&#xff1a;MGeo镜像5分钟快速部署&#xff0c;支持中文地址实体对齐 1. 为什么需要专业的地址相似度匹配&#xff1f; 在日常业务中&#xff0c;地址数据往往存在多种表达方式。比如"北京市海淀区中关村大街1号"和"北京海淀中关村大街一…...

REX-UniNLU C++高性能集成:模型推理加速方案

REX-UniNLU C高性能集成&#xff1a;模型推理加速方案 1. 为什么在C里跑NLU模型是个现实需求 很多做企业级文本处理的朋友都遇到过类似情况&#xff1a;业务系统用C写的&#xff0c;性能要求高、响应要快、不能随便加新语言栈。这时候突然需要接入一个中文NLP能力——比如从客…...

Seata+RocketMQ分布式事务实战:从理论到10万QPS的性能优化

1. 分布式事务的本质与挑战 第一次接触分布式事务时&#xff0c;我盯着电脑屏幕发呆了半小时——这玩意儿不就是把本地事务搬到多个服务上吗&#xff1f;但真正动手实现时&#xff0c;才发现自己太天真了。想象一下双十一的电商场景&#xff1a;用户下单要扣库存、生成订单、调…...

华为eNSP实战:3种方法搞定VLAN间通信(附完整配置命令)

华为eNSP实战&#xff1a;VLAN间通信的3种工程化解决方案深度解析 刚接触企业级网络时&#xff0c;最让我困惑的就是不同部门间的网络隔离与互通问题。财务部的电脑为什么不能直接访问研发部的服务器&#xff1f;为什么同一个物理交换机下的设备会被划分到不同的广播域&#xf…...

BMC开发实战:i2c-tools显示‘UU’?别慌,这是PCA9545 I2C Switch在正常工作

BMC开发实战&#xff1a;i2c-tools显示UU&#xff1f;别慌&#xff0c;这是PCA9545 I2C Switch在正常工作 当你在BMC环境下使用i2cdetect扫描物理I2C总线时&#xff0c;看到PCA9545的地址显示为UU&#xff08;忙碌状态&#xff09;而不是预期的设备地址&#xff0c;这可能会让不…...

OpenClaw多任务队列:Qwen3.5-9B并行处理图片批分析

OpenClaw多任务队列&#xff1a;Qwen3.5-9B并行处理图片批分析 1. 为什么需要批量图片分析 上周我接到一个朋友的需求&#xff1a;他经营一家小型电商店铺&#xff0c;每天需要处理上百张商品截图&#xff0c;包括提取商品特征、检查图片合规性、生成简短的描述文案。手动操作…...

从电机控制到机器人:传递函数G(s)在实际工程中到底怎么用?(附Simulink/PLC实例)

从电机控制到机器人&#xff1a;传递函数G(s)在实际工程中到底怎么用&#xff1f;&#xff08;附Simulink/PLC实例&#xff09; 在工业自动化领域&#xff0c;传递函数就像机械工程师手中的游标卡尺——它不仅是测量工具&#xff0c;更是设计蓝图。许多工程师在课堂上学会了推导…...

单片机硬件开发工具与技能学习指南

1. 硬件研发入门&#xff1a;从单片机开始的必备工具清单十年前我刚接触单片机时&#xff0c;也曾被琳琅满目的工具搞得晕头转向。记得第一次用烙铁焊接STM32最小系统板&#xff0c;因为温度没调好直接烧毁了芯片。这份清单会帮你避开我踩过的坑&#xff0c;用最合理的预算搭建…...

HDC302x温湿度传感器技术解析与嵌入式应用指南

1. HDC302x系列温湿度传感器技术深度解析1.1 器件定位与核心价值HDC302x&#xff08;含HDC3020、HDC3021、HDC3022&#xff09;是德州仪器&#xff08;TI&#xff09;推出的高精度、超低功耗集成式温湿度传感器家族。该系列并非传统分立式方案的简单集成&#xff0c;而是基于TI…...