一种排序快速排序算法的实现

news/2025/5/20 4:47:57

1.快速排序的思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

2.实现:首先写一个将数组分割成两块的函数int Partion(int arr[],int len);返回值为分割后的中间点。该函数以数组第一个数为分割标志。

 1 int partion(int arr[],int len){
 2     int m=0;
 3     int flag=arr[m];
 4     int now=0;
 5     if(len==1)
 6     return 0;
 9     for(int i=0;i<len;i++)
10     {
11        if(arr[i]<flag)
12        {
13         swap(arr[i],arr[m]);
14         m++;
15         now =i;
16        }
17     }
19     return m;
20     }

一次调用后数组会分成两个部分,左边部分全部小于分割标志,右边部分全部大于分割标志。

2.递归对左部分和右部分进行排序。

int qsort(int arr[],int len)
{if(len==1)return 0;int re=partion(arr,len);if(re==0){qsort(&arr[re+1],len-re-1);return 0;}else{
    qsort(arr,re);qsort(&arr[re],len-re);}
}

 

转载于:https://www.cnblogs.com/lxdonge/p/4548404.html

文章来源:https://blog.csdn.net/weixin_30905133/article/details/97425705
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-17319.html

相关文章

Linux1 在Linux(CentOS)上安装MySql详细记录

前记&#xff1a; 毕业两年了&#xff0c;前两天换了份工作&#xff0c;由以前的传统行业跳到了互联网行业。之前的公司一直在用WinServer2003TomcatSqlServer/Oracle这套部署环境。对于LinuxTomcat(或其他容器)Mysql这套之前没用用过。所以利用这周末的我在阿里云上49元搞了个…

springboot-sentinel最基本入门Demo-1,代码方式编写限流规则,并接入到sintinel控制台,抛出异常的方式定义资源

限流规则配置的方式有两种 a 直接在代码中编写 b 通过sentinel的web控制台配置 1 引用maven依赖 <!-- sentinel核心依赖 --> <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-core</artifactId><version>1.7.…

springboot-sentinel最基本入门Demo-2,代码方式编写限流规则,并接入到sintinel控制台,以返回布尔值的方式定义资源

此Demo在抛出异常的方式定义资源 这个Demo中修改&#xff0c;整体代码大同小异https://blog.csdn.net/qq_41712271/article/details/117570002改动如下 注意&#xff1a;SphO.entry() 和 SphO.exit() 必须都要有&#xff0c;否则会导致调用链记录异常 package cn.jiqistudy.bo…

[转载]SET FOREIGN_KEY_CHECKS=0;在Mysql中取消外键约束

Mysql中如果表和表之间建立的外键约束&#xff0c;则无法删除表及修改表结构。解决方法是在Mysql中取消外键约束: SET FOREIGN_KEY_CHECKS0; 然后将原来表的数据导出到sql语句&#xff0c;重新创建此表后&#xff0c;再把数据使用sql导入&#xff0c;然后再设置外键约束: SET…

springboot-sentinel最基本入门Demo-3,代码方式编写限流规则,并接入到sintinel控制台,以注解的方式定义资源

此Demo在抛出异常的方式定义资源 这个Demo中修改&#xff0c;整体代码大同小异https://blog.csdn.net/qq_41712271/article/details/117570002改动如下 1 添加maven依赖&#xff0c;增加了一个依赖 <!-- sentinel核心依赖 --><dependency><groupId>com.alib…

【数据库摘要】5_Sql_IN

IN 操作符 IN 操作符同意您在 WHERE 子句中查找多个值。 SQL IN 语法 SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...);IN 操作符实例 &#xff08;使用Northwind样本数据库&#xff09; SELECT * FROM Customers WHERE City IN (Paris,Londo…

博客园数学公式

博客园数学公式 首先&#xff1a;进入博客园>>管理>>选项>>启用数学公式支持 使用&#xff1a;将公式写在中 \( 此处填写公式内容 \) &#xff0c;去掉全部引号 举例&#xff1a;‘\(’a^{5}a^{2}*a^{3}‘\)’ 显示&#xff1a;\(a^{5}a^{2}*a^{3}\) \(F_{…

springCloud 整合 sentinel最基本入门Demo-1,接入到sintinel web控制台,并以控制台方式配置限流规则,以注解的方式定义资源

1 添加依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId><version>2.2.1.RELEASE</version> </dependency> 2 配置application.yml文件 spring:appl…

微信中使用表情符号代码,你一定用得上

表情图片字符串代码替换关键字/::)微笑/::~伤心/::B美女/::|发呆/:8-)墨镜/::<哭/::$羞/::X哑/::Z睡/::’(哭/::-|囧/::怒/::P调皮/::D笑/::O惊讶表情图片字符串代码替换关键字/::(难过/::酷/:–b汗/::Q抓狂/::T吐/:,P笑/:,-D快乐/::d奇/:,o傲/::g饿/:|-)累/::!吓/::L汗/::&…

summer 2014 Round 4 解题报告

Day 2: K-hash: 这道题其实只要懂了后缀自动机就不难了。不过我还是做了很久。本来以为用个sort就可以让所有的节点按val从小到大排序&#xff0c;然后就能递推了。调试良久后发现排序后数组中每个元素的地址不会发生变化&#xff0c;只是值发生变化了&#xff0c;所以排序是没…