挖坑填数-快速排序

1. left = L,right = R;将基准数挖出形成第一个坑s[left];

2. right --; 由后向前找比它小的数,找到后挖出此数填前一个坑s[left]中。

3. left ++; 由前向后找比它大的数,找到后挖出此数填前一个坑s[right]中。

4. 重复进行(2)(3),直到left == right,将基准数填入s[left]中。

源码如下:

#include <iostream>
#include <vector> using namespace std; void quickSort(int s[], int l, int r)
{
if(l < r)
{
int left = l, right = r;
int val = s[left]; while(left < right)
{
while(left < right && val <= s[right])
right--;
if(left < right)
s[left++] = s[right]; while(left < right && val > s[left])
left++;
if(left < right)
s[right--] = s[left];
}
s[left] = val;
quickSort(s, l, left - );
quickSort(s, left + , r);
}
} int main()
{
const int len = ;
int s[len] = {, , };
int l = , r = len -; quickSort(s, l, r);
for(int i = ; i <= r; i++)
{
printf("%d\t", s[i]);
}
return ;
}

排序算法之快速排序QuickSort的更多相关文章

  1. 排序算法TWO:快速排序QuickSort

    import java.util.Random ; /** *快速排序思路:用到了分治法 * 一个数组A[0,n-1] 分解为三个部分,A[0,p - 1] , A[p] , A[p + 1, n-1 ...

  2. Java常见排序算法之快速排序

    在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...

  3. Python之排序算法:快速排序与冒泡排序

    Python之排序算法:快速排序与冒泡排序 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/7828610.html 入坑(简称IT)这一行也有些年头了,但自老师 ...

  4. Java排序算法之快速排序

    Java排序算法之快速排序 快速排序(Quicksort)是对冒泡排序的一种改进. 快速排序由C. A. R. Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分 ...

  5. 排序算法之快速排序Java实现

    排序算法之快速排序 舞蹈演示排序: 冒泡排序: http://t.cn/hrf58M 希尔排序:http://t.cn/hrosvb  选择排序:http://t.cn/hros6e  插入排序:ht ...

  6. 常用排序算法之——快速排序(C语言+VC6.0平台)

    经典排序算法中快速排序具有较好的效率,但其实现思路相对较难理解. #include<stdio.h> int partition(int num[],int low,int high) / ...

  7. javascript高级排序算法之快速排序(快排)

    javascript高级排序算法之快速排序(快排)我们之前讨论了javascript基本排序算法 冒泡排序 选择排序 插入排序 简单复习: 冒泡排序: 比较相邻的两个元素,如果前一个比后一个大,则交换 ...

  8. javascript数据结构与算法--高级排序算法(快速排序法,希尔排序法)

    javascript数据结构与算法--高级排序算法(快速排序法,希尔排序法) 一.快速排序算法 /* * 这个函数首先检查数组的长度是否为0.如果是,那么这个数组就不需要任何排序,函数直接返回. * ...

  9. Python实现排序算法之快速排序

    Python实现排序算法:快速排序.冒泡排序.插入排序.选择排序.堆排序.归并排序和希尔排序 Python实现快速排序 原理 首先选取任意一个数据(通常选取数组的第一个数)作为关键数据,然后将所有比它 ...

随机推荐

  1. 阿里云window server2012 r2服务器安装sql server2014配置成本地management工具连接

    1.关服务器防火墙. 2.阿里云管理控制台配置安全组, 3.进入服务器,打开

  2. 将其它部分jsp代码包含进一个jsp文件

    <jsp:include page="文件路径/文件名.jsp" /> 将其它部分jsp代码包含进来.意义:将公共的部分代码抽出来,省略过多复制粘贴:只要改一个地方就O ...

  3. windows下安装Sonar

    1.sonar安装: sonar有三部分组成: 1.服务端:显示分析结果和sonar相关配置 2.客户端:对项目运行源代码进行运算和分析 3.数据库:存储sonar配置和代码分析结果的数据库 2.so ...

  4. superset采集流程

    superset采集流程: 先从业务的bi从库oride-slave-bi(10.52.123.212)去拿数,然后计算(每10分钟由airflow调py代码),放到bi的库(BI业务-数据指标存储1 ...

  5. [转帖]k8s.gcr.io镜像无法下载的问题

    k8s.gcr.io镜像无法下载的问题 https://blog.51cto.com/liuzhengwei521/2301497 看了下 赵安家老师应该是青岛人 在济南顺能网络科技有限公司上班 铭盛 ...

  6. (5.3.2)数据库迁移——SSIS包批量导出

    SSIS连接出错 原因 :    ssms 工具 不是 admin 权限 打开的  SSIS包批量导出代码 use msdb go IF OBJECT_ID('msdb.dbo.usp_ExportS ...

  7. idea配置glassFish

    FIile ---> settings ---> 查找Application Server .. 点击加号,, 点击glassFish Server.. 找到glassFish存放路径 点 ...

  8. 快速开启关闭mysql,批命令方便!

    很多python开发人员和我一样,都会在自己的电脑上配置一个python开发的环境,便于开发和学习使用,比如我现在电脑上使用的就是mysql数据库,而我的电脑配置又比较低,电脑运行起来会出现卡慢的情况 ...

  9. 23-Perl 面向对象

    1.Perl 面向对象Perl 中有两种不同地面向对象编程的实现:一是基于匿名哈希表的方式,每个对象实例的实质就是一个指向匿名哈希表的引用.在这个匿名哈希表中,存储来所有的实例属性.二是基于数组的方式 ...

  10. windows服务总结

    一.创建windows服务项目创建完成后结构,如: 其中,Program.cs代码: using System; using System.Collections.Generic; using Sys ...