快速排序及三种排序方法 Hoare法/挖坑法/前后指针法

2023-11-03

快速排序

算法思想:基于分治的思想,是冒泡排序的改进型。同冒泡排序一样,快速排序也属于交换排序,通过元素之间的比较和交换位置来达到排序的目的。
不同的是,冒泡排序在每一轮只把一个元素冒泡到数列的一端,而快速排序在每一轮挑选一个基准元素,并让其他比它大的元素移动到数列一边,比它小的元素移动到数列的另一边,从而把数列拆解成了两个部分。
在这里插入图片描述
每次把数列分成两部分,究竟有什么好处呢?
假如给定8个元素的数列,一般情况下冒泡排序需要比较8轮,每轮把一个元素移动到数列一端,时间复杂度是O(n^2)。

Hoare法:
在这里插入图片描述
代码

int  HoareMethod(int *a, int beain, int end)
{
   
	int key = a[end];
	int keyindex = end;
	while (beain < end)
	{
   
		while (beain < end&&a[beain] <= key)
			beain++;
		while (beain < end&&a
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速排序及三种排序方法 Hoare法/挖坑法/前后指针法 的相关文章

随机推荐

  • sudo提权漏洞cve-2023-22809

    1 影响版本 Sudo 1 8 0 1 9 12p1均受影响 2 sudo V查看当前sudo版本 3 exp usr bin env bash Exploit Title sudo 1 8 0 1 9 12p1 Privilege Esc
  • Python网络爬虫:爬取CSDN热搜数据 并保存到本地文件中

    hello 大家好 我是wangzirui32 今天我们来学习如何爬取CSDN热搜数据 并保存到Excel表格中 开始学习吧 学习目录 1 数据包抓取 2 编写代码 1 数据包抓取 打开CSDN首页 再打开检查 或为审查元素 各大浏览器不同
  • STDOUT_FILENO stdout

    STDOUT FILENO表示标准输出 STDERR FILENO表示标准出错 使用时需要加头文件
  • ViewPager(一屏多页、无限滑动、自动切换)

    一 简介 前段时间在腾讯视频中看到一个效果 是一个广告轮播 然后一屏还显示了多页 看着这个效果看着还不错 就自己实现了下 国际惯例先上效果图 如下 虽然界面比较简陋 但是功能是全的 分割线 二 原理 实现如上效果需要两个功能 一屏多页 无限
  • Spark编程基础期末复习

    选择题 1 spark 的四大组件下面哪个不是 D A Spark Streaming B Mlib C Graphx D Spark R 2 下面哪个端口不是 spark 自带服务的端口 C A 8080 B 4040 C 8090 D
  • 30是什么意思_农村俗语“30要想,40要戒,50要数,60要放”什么意思?有道理吗...

    请您在阅读本文前点击右上方的 关注 以后您就可以每天免费收到 农夫也疯狂 分享的关于农村大小事 文 农夫也疯狂 中国的文化博大精深 而农村文化一样影响深远 其也是传统文化中的重要部分 在过去绝大多数的农村人都没有念过什么书 但是却能明白很多
  • 【大数据存储技术】实验2:MongoDB数据库的部署和操作

    目录 1 实现MongoDB单实例的部署 1 1 安装MongoDB Ubuntu版本 22 04 LTS 1 1 1 查看Ubuntu版本 1 1 2 使用Ubuntu命令安装 1 2 启动MongoDB 验证状态 1 3 测试Mongo
  • 五. SpringCloud Alibaba Sentinel 自定义降级

    目录 一 简单解释 二 SentinelResource 注解详解 三 SentinelResource 设置异常降级方法 三 SentinelResource 降级方法与业务接口的解耦 一 简单解释 在前面配置限流 熔断降级时 可以针对u
  • linux网络编程(一)

    1 linux的网络模型 linux使用的网络模型是TCP UP四层网络模型 主要由应用程序 传输层 网络层 网络接口层组成 与OSI七层模型不同 但是又相互对应 它们之间关系如下图 OSI模型的应用层 表示层 会话层对应着TCP IP模型
  • Android中Application的onCreate多次调用问题

    http blog csdn net peidonghui article details 46043943 版权声明 本文为博主原创文章 未经博主允许不得转载 1 问题描述 一个Android应用需要为一个service单独开一个进程以完
  • 设置cin不忽略空格

    cin读取字符是会忽略空格和换行的 可以用noskipws设为不跳过空格或者换行 char step cin gt gt noskipws gt gt step
  • ERROR 1045(28000):Access denied for user ‘root‘@‘local‘(using password:yes)问题解决

    首先出现这种问题一般是密码错误 但是也有可能 输入密码正确也显示报错的情况 笔者刚在Xshell中安装mysql 第二天输入了正确密码 我保证我输入的是正确的 出现此类报错 解决方法一般是重置密码 1 跳过MYSQL的密码验证过程 在Xsh
  • 蓝桥杯单片机学习过程记录(二十八)第五届国赛串口通信相关代码补充

    蓝桥杯单片机学习过程记录 二十八 第五届国赛串口通信相关代码补充 UART串口通信 第五届国赛uart串口内容相关补充 设置数组存储输入输入字符 并与设定的密码相判断 include
  • springboot2+shiro+redis限制同一账号同时在线人数

    springboot2 shiro redis限制同一账号同时在线人数 我们在写系统的时候 需要注意账号安全问题 最好的处理方法就是同一个账号只能在一个地方登录 原理 大概的原理就是每次登录的时候将登录的sessionId存入缓存 然后登录
  • c# 二维码生成

    dll下载 https pan baidu com s 1MDQalDEoV4iDXRYsEzDXtw 生成图片 此dll适合Framework版本较多 Imports ThoughtWorks QRCode Codec Dim qrCod
  • 技术人修炼之道阅读笔记(七)系统性思维方法

    在工作中有两种高手 一种是他们有成体系的逻辑 术法清晰 另一种是他们悟性高 对大多数人来说 前一种可借鉴性更高 但前提是要足够努力和坚持 塑造系统性思维并进行验证和升级 一 什么是系统性思维 系统性思维 是把物质系统当作一个整体进行思考的思
  • matlab 中num2str函数的使用

    参考 https zhidao baidu com question 431413920 html 问题描述 先前使用num2str函数只是使用了该函数最常用的功能 将数字转换为字符串 但其实该函数还有额外格式上的功能 今天使用图像批处理的
  • vue中使用echarts词云

    1 安装 cnpm install echarts wordcloud 2 创建模板组件 WordCloudChart
  • 自制Jlink OB

    简言 bin 2020 for 6 6 bin 适用最新版的Jlink驱动 6 6x版本号 关于修改SN 打开Jlink Commander 输入exec setsn xxxxxxxx即可修改成功 依据网上的资源 做了一些修改 将原来的输出
  • 快速排序及三种排序方法 Hoare法/挖坑法/前后指针法

    快速排序 算法思想 基于分治的思想 是冒泡排序的改进型 同冒泡排序一样 快速排序也属于交换排序 通过元素之间的比较和交换位置来达到排序的目的 不同的是 冒泡排序在每一轮只把一个元素冒泡到数列的一端 而快速排序在每一轮挑选一个基准元素 并让其