快速排序c++java代码实现

快速排序的思想 (基于分治法): 

每次选一个基准元素x,通过一次遍历将排序表划分为独立的两部分a[l,k-1],a[k+1,r];

其中左边的元素<=x,右边的1元素>x,然后递归下去,直到每个块的大小为1 ;

c++

#include<bits/stdc++.h>
using namespace std ;void quickSort(vector<int>& q,int l,int r){if (l >= r) return;//设置分界点int x = q[l + r >> 1];//调整区间int i = l - 1, j = r + 1;while (i < j) {//-查找分界点左侧大于等于分界点的值do ++i; while (q[i] < x);//-查找分界点右侧小于等于分界点的值do --j; while (q[j] > x);//-交换位置if (i < j) {int temp = q[i];q[i] = q[j];q[j] = temp;}}//对左侧递归排序quickSort(q, l, j);//对右侧递归排序quickSort(q, j + 1, r);
}int main(){int n ; cin >> n ;vector<int> a(n) ;for(int& x : a) cin >> x ;quickSort(a,0,n-1) ;for(int& x : a) cout << x << " " ;
}

java

package sf;import java.util.Scanner;public class quicksort {public static void quickSort(int[] q, int l, int r) {if (l >= r) return;//设置分界点int x = q[l + r >> 1];//调整区间int i = l - 1, j = r + 1;while (i < j) {//-查找分界点左侧大于等于分界点的值do ++i; while (q[i] < x);//-查找分界点右侧小于等于分界点的值do --j; while (q[j] > x);//-交换位置if (i < j) {int temp = q[i];q[i] = q[j];q[j] = temp;}}//对左侧递归排序quickSort(q, l, j);//对右侧递归排序quickSort(q, j + 1, r);}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] q = new int[n];for (int i = 0; i < n; i++) {q[i] = sc.nextInt();}quickSort(q, 0, n -1);for (int value : q) {System.out.print(value + " ");}}
}

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

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

相关文章

Linux Static Keys和jump label机制

文章目录 前言一、asm goto二、API使用2.1 低版本API2.2 高版本API 三、jump label四、源码分析4.1 数据结构4.2 static_key_false4.3 jump_label_init4.4 __jump_label_transform4.5 static_key_slow_inc/dec 五、__jump_table节5.1 内核5.2 内核模块 六、修改内存代码6.1 x86…

24西安电子科技大学数学与统计学院—考研录取情况

24西安电子科技大学—数学与统计学院—考研录取统计 01、数学与统计学院各个方向 02、24数学与统计学院近三年复试分数线对比 数统院24年院线相对于23年院线增加高达30分&#xff0c;确实增长浮动比较高&#xff0c;接近30分的水平&#xff0c;因此大家更需要好好去努力&#x…

GTest和Catch2单元测试学习(附Cmake测试代码库)

kevin_CTest CTest 单元测试学习 Gitee库&#xff1a; https://gitee.com/bigearrabbit/kevin_ctest.git 示例多是从网页文章上摘取的&#xff0c;大部分记录在下面&#xff0c;或者源码内。供学习参考。 CTest 学习Catch2 框架 单个文档的测试架构&#xff0c;使用方便&am…

FastGPT 报错:undefined 该令牌无权使用模型:gpt-3.5-turbo (request id: xxx)

目录 一、FastGPT 报错 二、解决方法 一、FastGPT 报错 进行对话时 FastGPT 报错如下所示。 [Error] 2024-07-01 09:25:23 sse error: undefined 该令牌无权使用模型:gpt-3.5-turbo (request id: xxxxx) {message: 403 该令牌无权使用模型:gpt-3.5-turbo (request id: x…

人机交互中信息之间的距离

在人机交互中&#xff0c;信息之间的距离可以从多个角度来理解和描述&#xff1a; 1、物理距离 &#xff1a;这指的是用户与交互设备&#xff08;例如电脑、手机、智能设备&#xff09;之间的物理空间距离。随着移动设备的普及和技术的发展&#xff0c;用户可以在不同的物理位置…

vue3中svg图标的封装与使用

组件封装&#xff1a; <template><svg :class"svgClass" :style"{ width: size px, height: size px, color: color, verticalAlign:deviationem}" aria-hidden"true"><use :xlink:href"#icon-${name}" /></s…

scss学习总结

摘录更改至 scss: map:merge 和 each $attribute, $value in $variables 研究 Element-plus 源码时&#xff0c;有以下一段代码&#xff1a; // path: element-plus/packages/theme-chalk/src/button.scss include b(button) {include set-component-css-var(button, $butto…

RISC-V的历史与设计理念

指令集是什么&#xff1f; 如果把软件比作螺丝钉&#xff0c;硬件比作螺母&#xff0c;那么指令集架构就是螺丝钉与螺母的蓝图。我们需要根据蓝图设计可以匹配的螺丝钉与螺母。——包云岗老师 RISC-V的起源 以往比较流行的指令集&#xff1a;ARM&#xff0c;MIPS&#xff0c;X…

FreeRTOS的任务间通信

文章目录 4 FreeRTOS任务间通信4.1 队列4.1.1 队列的使用4.1.2 队列的创建&#xff0c;删除&#xff0c;复位4.1.3 队列的发送&#xff0c;接收&#xff0c;查询 4.2 邮箱&#xff08;mailbox&#xff09;4.2.1 任务中读写邮箱4.2.2 中断中读写邮箱 4.3 队列集4.3.1 队列集的创…

【哈希表】【字符串】个人练习-Leetcode-1814. Count Nice Pairs in an Array

题目链接&#xff1a;https://leetcode.cn/problems/count-nice-pairs-in-an-array/description/ 题目大意&#xff1a;给出一个数列nums[]&#xff0c;求nice对 ( i , j ) (i, j) (i,j)对数。nice对满足0 < i < j < nums.length和nums[i] rev(nums[j]) nums[j] r…

Vue打包文件dist放在SpringBoot项目下运行(正确实现全过程)

项目开发中&#xff0c;一般我们都会使用SpringBootVue进行前后端开发。 在部署时&#xff0c;会后端启动一个服务&#xff0c;再启动一个nginx&#xff0c;nginx中配置前端打包文件dist进行项目访问。 实际上&#xff0c;我们也可以把打包好的dist目录放在SpringBoot项目下进…

【Android面试八股文】Android 有哪些存储数据的方式?

在Android平台上,有多种方式可以存储数据,每种方式都适合不同类型的数据和使用场景。以下是主要的存储数据方式: SharedPreferences(轻量级数据存储): SharedPreferences是用于存储简单键值对数据的最简单方法,适合存储用户偏好设置、配置信息等。数据以XML文件形式存储…

Os-hackNos

下载地址 https://download.vulnhub.com/hacknos/Os-hackNos-1.ova 环境配置如果出现&#xff0c;扫描不到IP的情况&#xff0c;可以尝试vulnhub靶机检测不到IP地址解决办法_vulnhub靶机扫描不到ip-CSDN博客 信息收集 确定靶机地址&#xff1a; 探测到存活主机192.168.111.…

如何利用AI撰写短文案获客?分享6大平台和3大步骤!

从去年开始&#xff0c;很多大厂都在裁员&#xff0c;原因就是因为AI的火爆&#xff0c;替代了很多机械式的劳动力。以前很多人可以通过机械式的工作来摸鱼&#xff0c;现在AI完成的效率比人工的要高很多倍。 国内好用的AI平台非常多&#xff0c;有时候也可以使用几个AI平台结合…

专业的酱酒鉴评方法及要求

在探讨酱酒鉴评的领域&#xff0c;我们不仅需要关注鉴评的基本方法&#xff0c;还要深入了解品评环境的设置、品酒杯的选择以及品酒员的专业素质。这些因素共同构成了酱酒鉴评的完整体系&#xff0c;确保了鉴评结果的科学性和准确性。 酱酒鉴评的基本方法 酱酒鉴评主要依赖于…

软件设计之Java入门视频(11)

软件设计之Java入门视频(11) 视频教程来自B站尚硅谷&#xff1a; 尚硅谷Java入门视频教程&#xff0c;宋红康java基础视频 相关文件资料&#xff08;百度网盘&#xff09; 提取密码&#xff1a;8op3 idea 下载可以关注 软件管家 公众号 学习内容&#xff1a; 该视频共分为1-7…

STM32学习历程(day2)

GPIO解释 GPIO(General-purpose input/output) 可以配置为八种输入输出模式 引脚电平 0V-3.3V 部分引脚可容忍5v 输出模式可控制端口输出高低电平 用以驱动LED、控制蜂鸣器、模拟通信协议输出时序 输入模式可读取端口的高低电平或电压&#xff0c;用于读取按键输入、外界…

反序列化POP链技术详解

POP&#xff08; Procedure Oriented Programming &#xff09;链是反序列化安全问题中相对比较重要的技术点&#xff0c;相比于其他的反序列化问题&#xff0c;这种漏洞的产生更加难以发现&#xff0c;以及在利用上也比较复杂。 要掌握这个东西首先要先了解面向对象中的几个特…

利用coredump获取程序调用通路

一些前置知识 原文链接&#xff1a;https://blog.csdn.net/tenfyguo/article/details/8159176 一、什么是coredump 我们经常听到大家说到程序core掉了&#xff0c;需要定位解决&#xff0c;这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止&a…

MUNIK解读CMMI-带你认识什么是CMMI

1、什么是CMMI? CMMI是Capability Maturity Model Integration&#xff08;能力成熟度模型集成&#xff09;的简称&#xff0c;用于评估软件开发商的质量和能力。CMMI模型最初为美国国防部创建&#xff0c;后被广泛应用于其他领域&#xff0c;通过一整套过程改进实践&#xf…