(笔记)快速排序

news/2024/4/23 22:52:59/

快速排序

快速排序是一种常用的排序算法。它的时间复杂度为O(nlogn),并且在实际应用中表现良好。快速排序的基本思想是通过选择一个基准数,将数组分成两个子数组,比基准数小的放在左边,比基准数大的放在右边,然后对左右子数组分别递归地进行快速排序。

以下是使用 Java 实现的快速排序代码:

public class QuickSort {public void sort(int[] arr, int left, int right) {if (left >= right) return;int pivot = partition(arr, left, right);sort(arr, left, pivot - 1);sort(arr, pivot + 1, right);}private int partition(int[] arr, int left, int right) {int pivot = arr[left];int i = left + 1, j = right;while (i <= j) {if (arr[i] < pivot) {i++;} else if (arr[j] >= pivot) {j--;} else {swap(arr, i, j);}}swap(arr, left, j);return j;}private void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}
}

快速排序的时间复杂度为 O(nlogn),其中 n 表示数组的大小。这是因为快速排序每次将数组分成两个子数组,并对每个子数组进行递归排序。在最好情况下,即每次划分都将数组划分为大小相等的两个子数组时,在最坏情况下,即每次划分都只得到一个子数组时,但是,由于快速排序的常数因子比较小,因此在实践中表现良好。

快速排序通常用于需要对大量数据进行排序时。由于其时间复杂度比一些其他排序算法(如归并排序)高,因此在数据量较小的情况下,可能不如其他算法效率高。但是,由于快速排序的常数因子比较小,因此当数据量较大时,快速排序往往比其他算法更快。此外,快速排序还具有空间复杂度低的优点,因为它可以在原地对数组进行排序。

总之,快速排序是一种非常实用的排序算法,尤其适用于需要对大量数据进行排序的情况。


http://www.ppmy.cn/news/963542.html

相关文章

基于ssm+mybatis+mysql+jsp机票预定系统

基于ssmmybatismysqljsp机票预定系统 一、系统介绍二、功能展示1.主页2.个人中心3.用户管理(管理员)4.客机管理&#xff08;管理员&#xff09;5.航班管理&#xff08;管理员&#xff09;6.机票管理&#xff08;管理员&#xff09; 三、其它系统四、获取源码 一、系统介绍 系统…

chatgpt赋能python:如何用Python写手机软件

如何用Python写手机软件 Python作为一种高级编程语言&#xff0c;越来越受到开发者的欢迎。这篇文章将会向您介绍如何使用Python来编写手机软件。 简介 Python是一个面向对象的编程语言&#xff0c;它可以在各种不同的计算机平台上运行&#xff0c;包括移动设备和智能手机。…

chatgpt赋能python:如何使用Python快速打包iOS应用程序

如何使用Python快速打包iOS应用程序 如果你是iOS应用程序开发者&#xff0c;那么你一定知道打包iOS应用程序的繁琐和耗时。在iOS应用商店上发布应用程序需要遵守特定的规则&#xff0c;并且必须打包成IPA文件。如果你想在你的开发流程中更快地打包应用程序&#xff0c;那么你可…

ChatGPT实现流程

ChatGPT 的实现流程大致如下&#xff1a; 数据准备&#xff1a;通过爬虫或其他手段获取大量的文本数据&#xff0c;并进行预处理以便模型的训练。 模型构建&#xff1a;使用 Transformer 模型作为基础结构&#xff0c;通过预训练方式来学习文本语言表示。 模型训练&#xff1a;…

chatgpt底层实现

ChatGPT 是一种基于自然语言生成的对话模型&#xff0c;它是在 GPT(Generative Pre-training Transformer)的基础上进行改进和训练得到的。 GPT 是一种大型预训练语言模型&#xff0c;通过在大型文本语料库上进行预训练&#xff0c;可以学习到自然语言的结构和语法规则&#xf…

使用js实现分页列表复选框勾选

使用JS实现分页列表复选框的勾选 功能包含&#xff1a;切换下一页&#xff0c;保留上一页的勾选&#xff1b;返回上一页自动显示勾选状态。 HTML结构 <input type"checkbox" onchange"checkData(this)" id"checkbox_${user.id}" value&quo…

统计检验分析 (本文在chatGPT辅助下完成)

1. 正态分布检验 2. 统计检验 t-test: 适用于样本数量较小&#xff08;通常小于 30&#xff09;的正态分布数据&#xff0c;用于比较两个样本的均值是否有显著差异。 Paired t-test: 确定某个总体的成对测量值之间的差异是否为 0 Two-sample t-test (independent t-test): 确…

【AIGC】如何采集数据指令集打造定制化ChatGPT

前言 对于我们目前的Chatgpt&#xff0c;如何能更有效的为自己或者公司生成个性化的数据是非场重要的&#xff0c;指令集对个性化定制使用Chatgpt至关重要&#xff0c;因为不同的用户有各自的偏好、需求和习惯&#xff0c;他们期望从Chatgpt得到的结果也会不同。定制化的指令集…

Leetcode每日一题:18. 四数之和(2023.7.15 C++)

目录 18. 四数之和 题目描述&#xff1a; 实现代码与解析&#xff1a; 双指针 原理思路&#xff1a; 18. 四数之和 题目描述&#xff1a; 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[…

阿里云版Chat-gpt申请内测

不允许你还不知道阿里云的chat-gpt&#xff0c;快去申请 -- 内测申请地址&#xff1a;通义千问

万字详解 TCP协议,TCP开发绝不能错过

一、TCP协议介绍 TCP协议的作用和重要性 TCP&#xff08;Transmission Control Protocol&#xff09;是一种在计算机网络中广泛使用的传输层协议。它负责提供可靠的、面向连接的数据传输服务&#xff0c;确保数据能够按照正确的顺序和完整性传递。 提供可靠的数据传输&#x…

分享个免费gpt4的网站

不多bb直接上网站 https://ora.ai/openai/gpt4

如何使用OpenAi的ChatGPT咨询AI有关于Baumer工业相机的品牌国际知名度

基于OpenAi的Merlin Chat GPT使用方式 本方法可以不用国外网点进行登录使用ChatGPT 在国内就可以正常使用OpenAI的服务 一、下载Google浏览器 Google浏览器安装地址&#xff1a;https//www.google.cn/intl/zh-CN/chrome/ 登录自己的Google账号 搜索&#xff1a;Merlin - Ope…

Python基于监控摄像头实现制作延时拍摄视频源码,Python使用摄像头制作延时拍摄视频源码

使用监控摄像头制作延迟拍摄视频 一直想把开花的过程拍摄下来&#xff0c;使用相机延迟拍摄功能的困难在于&#xff0c;不知道花儿什么时候开&#xff0c;而相机存储卡容量有限。 2020年的2019-nCov疫情让我有时间来琢磨这件事情 我手上有一个米家1080P智能摄像机&#xff08;…

TamperMonkey脚本开发_无限制视频提取

背景 已购课程下载 ,在提取m3u8视频时,视频缓存使用ASE加密 以及VI偏移量等等,由于对这方面了解并不多.不知道如何提取到真实的地址 通过几种方式 嗅探 抓包 控制台监控 都无法获取到 IDM的视频下载由于法律原因无法下载该ts文件 但是这些ts都是分段的 就算下载了 我自己也无…

视频处理之视频抽帧的python脚本

在计算机视觉研究中&#xff0c;处理视频的时候&#xff0c;往往需要将视频抽帧成图片。如果多个视频都存放在一个文件夹里&#xff0c;并且希望抽帧出来的图片&#xff0c;以一个视频对应一个文件夹的形式存放&#xff0c;可以用以下代码&#xff0c;抽帧频率可自己手动修改&a…

三种录制接口脚本的方法

三种录制接口脚本的方法 在做接口测试没有接口文档的情况下&#xff0c;就可以使用录制脚本的方法来录制接口测试的脚本。jmeter本身就支持录制脚本&#xff0c;但是还有两种另外的工具也可以录制脚本。 因为我懒得自己做截图&#xff0c;所以有些图片是直接偷了我佳哥的笔记…

【剪辑必备】情感对话号必备-微信对话生成脚本,一键生成视频【安卓永久版脚本】

微信模拟聊天软件&#xff0c;可以自行更改网名&#xff0c;改头像&#xff0c;聊天内容随意修改&#xff0c;下载即可使用&#xff01;没有试用教程&#xff0c;用法非常简单 设备需求:安卓系统 教程工具请到CSDN下载https://download.csdn.net/download/Linxiaoyu2022/87423…

短视频拍摄脚本怎么写

优质的短视频每一个镜头都经过精心设计&#xff0c;镜头的设计就是利用镜头脚本&#xff0c;提前设想好一切想要的镜头效果和画面&#xff0c;最终作品才能一气呵成的呈现出来&#xff0c;接下来就来分析一下短视频拍摄脚本怎么写&#xff0c;短视频拍摄脚本有什么用? 短视频脚…

在浏览器中输入URL后都会发生什么

浏览器补全地址和DNS对域名进行解析&#xff1b; 1>当搜索baidu.com&#xff0c;实际访问的是http://www.baidu.com&#xff0c;浏览器会补全地址。 因为一个URL由协议、主机名、路径、搜索内容、哈希组成。 2>DNS解析过程&#xff1a;客户机先插本地缓存&#xff0c;找不…