文档章节

快速排序的实现

klaus丶
 klaus丶
发布于 2014/05/09 20:39
字数 102
阅读 14
收藏 0
void quickSort(int s[], int l, int r)  
{  
    if (l < r)  
    {        
        int i = l, j = r, x = s[l];  
        while (i < j)  
        {  
            while(i < j && s[j] >= x) // 从右向左找第一个小于x的数  
                j--;   
            if(i < j)  
                s[i++] = s[j];  
            while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数  
                i++;   
            if(i < j)  
                s[j--] = s[i];  
        }  
        s[i] = x;  
        quickSort(s, l, i - 1); // 递归调用  
        quickSort(s, i + 1, r);  
    }  
}


© 著作权归作者所有

klaus丶
粉丝 0
博文 48
码字总数 10481
作品 0
海淀
程序员
私信 提问
快速排序详解 Java实现

一、快速排序的优缺点 对一个东西,首先要讲他的利与弊,才知道怎么使用它。快速排序适用于各种不同的输入数据且在一般应用中比其他排序都要快得多。快速排序引人注目的特点包括它是原地排序...

小车车
2016/09/03
67
0
每天学习一点儿算法--快速排序

快速排序是一种常用的优雅的排序算法,它使用分而治之的策略。 那么分而治之(D&C)是一种怎样的策略呢? 分而治之 分而治之(D&C)的要点只有两个: 找出简单的基线问题 确定如何缩小问题的...

爱吃西瓜的番茄酱
2018/01/11
0
0
好程序员Java教程教你5分钟了解快速排序

好程序员Java教程教你5分钟了解快速排序,前言: 快速排序是面试中经常会问到的一种排序算法,对比其他一些排序算法,快速排序的平均时间相对较少。 快速排序思想介绍 快速排序使用了分治的思...

好程序员IT
06/21
38
0
算法——快速排序

快速排序可能是应用最广泛的排序算法了。原因是它实现简单,适用于各种不同的输入数据且在一般应用中比其他排序算法都要快得多。 特点:①它是原地排序(只需要一个很小的辅助栈);②且将长...

嘿胖丁
2018/03/04
27
0
轻松学习快速排序(二 )-- 快速排序优化

在上一篇文章轻松学习快速排序(一 ) -- 基本的快速排序中介绍了快速排序的算法,末尾提出了一个问题:例如这样的一个数组:1 10 23 6 9 10,一般来说会选择数组的第一个元素(也就是1)作为...

张风闲
2018/08/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

RxJava进行单元测试的方式

@Test public void completeTask_retrievedTaskIsComplete() { // Given a new task in the persistent repository final Task newTask = new Task(TITLE, ""); ......

SuShine
1分钟前
0
0
正则表达式大全

检验手机号码 # 要求:手机号码必须为11位数字,以1开头,第二位为1或5或8。import redef verify_mobile(): mob = input("请输入手机号码:") ret = re.match(r"1[358]\d{9}", m......

彩色泡泡糖
5分钟前
0
0
QT之border-image属性

一、border-image的兼容性 border-image可以说是CSS3中的一员大将,将来一定会大放光彩,其应用潜力真的是非常的惊人。可惜目前支持的浏览器有限,仅Firefox3.5,chrome浏览器,Safari3+支持...

shzwork
6分钟前
0
0
Kubernetes Operator简易教程

1. 安装operator-sdk //安装 operator-sdk$ apt-get install operator-sdk.....$ operator-sdk versionoperator-sdk version: v0.7.0$ go versiongo version go1.11.4 darwin/amd64 2......

Robotcl_Blog
6分钟前
1
0
再谈DAG任务分解和Shuffle RDD

1、DagScheduler分析 DagScheduler功能主要是负责RDD的各个stage的分解和任务提交。Stage分解是从触发任务调度过程的finalStage开始倒推寻找父stage,如果父stage没有提交任务则循环提交缺失...

守望者之父
12分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部