public static void quickSort(int start, int end) {
int x = data[start];
int pLeft = start, pRight = end;// 以第一个数为参照做比较
if (pLeft >= pRight){
return;
}
while (pLeft < pRight) {
while (pLeft < pRight && data[pRight] >= x) {
pRight--; // 不小于分界值的留在右边,遇到小于的停止
}
data[pLeft] = data[pRight];
while (pLeft < pRight && data[pLeft] <= x) {
pLeft++;// 小于分界值的留在左边,遇到不小于的停止
}
data[pRight] = data[pLeft];
}
data[pRight] = x;
quickSort(start, pRight - 1);
quickSort(pRight + 1, end);// 递归
}

高效排序算法(快排序)相关推荐

  1. C语言排序算法 选择排序 插入排序 快速排序 qsort实现快排 堆排序

    常见排序算法 选择排序 选择排序(Selection sort)是一种简单直观的排序算法. 它的工作原理如下. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素 ...

  2. 排序算法--快排的优化

    排序算法–快排的优化 下面是我写的一种快排: #include <iostream> #include <stdlib.h>using namespace std;void P ...

  3. 排序算法 | 快排、冒泡、堆排、归并、基数、递归、希尔、计数

    文章目录 写在前面 排序 1. 基数排序`稳定` 2. 归并排序`稳定`merge sort 3. 快速排序`不稳定`quick sort 4. 堆排序`不稳定`heap sort 大根堆 小根堆 5 ...

  4. JavaScript实现十种经典排序算法(js排序算法)

    冒泡排序算法 冒泡排序(Bubble Sort)是一种简单直观的排序算法.冒泡排序算法的步骤描述如下: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一 ...

  5. Java排序算法——选择排序

    Java排序算法--选择排序(Selection sort) 传送门 冒泡排序 插入排序 简述 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找 ...

  6. 排序算法---选择排序(java版)

    简单选择排序 原理 选择排序(Selection Sort)的原理有点类似插入排序,也分已排序区间和未排序区间.但是选择排序每次会从排序区间中找到最小的元素,将其放到已排序区间的末尾. 简单选择排序执 ...

  7. C语言基础排序算法-选择排序

    C语言基础排序算法-选择排序 什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法,第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从 ...

  8. 经典排序算法 - 鸡尾酒排序Cocktail sort

    经典排序算法 - 鸡尾酒排序Cocktail sort 鸡尾酒排序基于冒泡排序,双向循环 还是看例子吧,给定待排数组[2 3 4 5 1] 第一趟过去时的每一步 第一步迭代,2 < 3不换 [2 ...

  9. 经典排序算法 - 希尔排序Shell sort

    经典排序算法 - 希尔排序Shell sort 希尔排序Shell Sort是基于插入排序的一种改进,同样分成两部分, 第一部分,希尔排序介绍 第二部分,如何选取关键字,选取关键字是希尔排序的关键 第 ...

  10. 经典排序算法 - 耐心排序Patience Sorting

    经典排序算法 - 耐心排序Patience Sorting 这个排序的关键在建桶和入桶规则上 建桶规则:如果没有桶,新建一个桶;如果不符合入桶规则那么新建一个桶 入桶规则:只要比桶里最上边的数字小即可 ...

最新文章

  1. Sonatype收购Vor Security,扩展对Nexus开源组件的支持
  2. 浅谈工程师的调试法宝(5) -JScope的应用_MCU
  3. LightOJ 1093 - Ghajini 线段树
  4. 如何让自己的写的程序在阿里云一直运行
  5. adb native raact 夜神_React Native 与 夜神模拟器的绑定
  6. Server Core 的部署与管理
  7. ADSL防御黑客进攻的方法
  8. LoadRunner教程(7)-LoadRunner 创建测试场景
  9. 实战服务器虚拟化,企业虚拟化实战Vmware篇PDF影印版(张巍著) 56M
  10. 学习笔记:FW内容安全概述
  11. 基于【国基北盛】云基础架构平台软件搭建openstack私有云平台(先电V2.4版本)
  12. 中信银行总行信息科技部的面试(校招)
  13. 在Codesys用ST语言基于数组实现栈LIFO数据结构详细说明+代码实例
  14. 飞机机器人特摄片_机器人大战怪兽-好莱坞的特摄片「环太平洋」
  15. 用 Neo4j 快速构建明星关系图谱,你一定感兴趣
  16. 【微信小程序】图片下方有白边
  17. SPSS Modeler 统计指标计算(指南 第七章)
  18. 【Lilishop商城】No4-1.业务逻辑的代码开发,涉及到:会员B端第三方登录使用及后端接口(微信、QQ等)
  19. DC的逻辑综合与优化
  20. [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL

热门文章

  1. 为了上班摸鱼,我用Python开发“BOSS来了”
  2. ios 打印 详细错误日志_关于Xcode不能打印崩溃日志
  3. java中日期的数据类型是啥_用于存储日期和时间的最合适的SQL和Java数据类型
  4. python输入文字字符串、如何提取某个汉字_python提取字符串中的汉字数字字母
  5. VictoriaMetrics如何运用?
  6. 安全函数不安全-多线程慎用List.h
  7. Python之os模块用法
  8. 【Java工具类】使用Random类对象生成随机整数
  9. java 集合存储空字符窜_java中字符串对象和集合的判空
  10. sqlalchemy数据库中的offset偏移查询的使用