快速排序是基于划分的排序。

具体过程就不表了。

划分算法

int Partition(int* pData, int begin, int end)
{if (NULL == pData || begin > end)return -1;int pivot = begin;int front = begin;int back = end;while (front < back){ // 先从后面向先前找小于基准值的项while (front < back && pData[back] >= pData[pivot])--back;// 再从前往后面找大于基准值的项while (front < back && pData[front] <= pData[pivot])++front;// 如果都找到if (front < back)Swap(pData[front], pData[back]);}// 注意:交换的是pivot和backif (pivot != back)Swap(pData[pivot], pData[back]);return back;
}

快速排序

void QuickSort(int* pData, int begin, int end)
{if (NULL == pData || begin >= end)return;int pivot = Partition(pData, begin, end);QuickSort(pData, begin, pivot - 1);QuickSort(pData, pivot + 1, end);
}

快速排序QuickSort相关推荐

  1. 快速排序(quicksort)算法实现

     快速排序(quicksort)是分治法的典型例子,它的主要思想是将一个待排序的数组以数组的某一个元素X为轴,使这个轴的左侧元素都比X大,而右侧元素都比X小(从大到小排序).然后以这个X在变换后数组的 ...

  2. 快速排序(quickSort) 和 插入排序(insertSort)

    1.快速排序(quickSort) (1)在数据集之中,选择一个元素作为"基准"(pivot). (2)所有小于"基准"的元素,都移到"基准" ...

  3. quicksort java_Java代码实现快速排序(QuickSort)

    Java代码实现快速排序(QuickSort) 核心思想 如果要排序数组中下标从p到r之间的一组数据,我们选择p到r之间的任意一个数据为pivot(分区点). 我们遍历p到r之间的数据,将小于pivo ...

  4. 数据算法之快速排序(quickSort)的Java实现

    本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. 快速排序的基本思想是通过一 ...

  5. 排序1+3:基数排序(RadixSort),希尔排序(ShellSort)和快速排序(QuickSort)

    1 基数排序 基数排序对于整数特别有效.是一种稳定的算法(意思是相同的数字不会交换关系).基数排序是根据数字的性质来逐步根据个位数,十位数,百位数分类求得排序结果的方法之一.它的想法如下: (1)先将 ...

  6. 快速排序--QuickSort()--递归版本

    一.快速排序(递归版本) 1.快速排序模板(初始版本) void QuickSort(int* a, int begin, int end) {// 区间不存在,或者只有一个值则不需要在处理if (b ...

  7. 快速排序(QuickSort)算法介绍

    算法简介 快速排序(Quicksort)是对冒泡排序的一种改进算法.由C. A. R. Hoare在1960年提出.该算法使用广泛.效率很高,是最重要的排序算法之一. 该算法的实现基本可分为以下几步: ...

  8. 快速排序-QuickSort

    一.基本思想 1.在快速排序中,采取的主要的"拆"的思想 2.每一次将数组拆为两个部分,令中间元素为pivot,pivot左边的所有元素都会小于pivot,而pivot的右边的所有 ...

  9. java快速排序quicksort

    public class QuickSortDemo {public static void main(String[] args) {int[] arr = {12,36,56,44,9,44,18 ...

  10. 排序算法--快速排序(QuickSort)、 3区快速排序(3 Way QuickSort)原理、适用场景及代码示例

    快速排序 概念介绍 QuickSort快速和归并排序一样,是采用分治法解决问题的一个典型应用.它选择一个元素作为基准元素,并围绕选定的基准元素对给定数组进行分区. quickSort有很多不同的版本, ...

最新文章

  1. mysql more_mysql中哪种日志不能直接cat或more
  2. 多传感器信息融合算法总结
  3. 计算机中缺少d3dx9_35.dll,d3dx9_35.dll丢失怎么办-d3dx9_35.dll丢失的解决办法
  4. 肝!不需要一行 Python 代码,也可以自动获取数据
  5. 集训2--进程控制理论
  6. HDLBits答案(19)_Verilog有限状态机(6)
  7. Shell 变量的操作方法
  8. 2019蓝桥杯省赛---java---C---1(求和)
  9. 使用JAX-RS和Spring构建HATEOAS API
  10. JavaScript-DOM(2)
  11. Java程序员已经饱和了,还有必要培训Java编程嘛
  12. 20181027 考试记录
  13. (转载)web.xml中 IntrospectorCleanupListener的作用
  14. 求 一个 quality center explorer 9.0的 百度网盘 或是别的下载地址的链接
  15. SOFR, So Far ... So Good?
  16. MySQL的主键,索引设置和添加
  17. 【机房重构】-UNL图回顾
  18. 关于SQL数据表存储过程表名前缀换成dbo代码
  19. 用 Golang 实现矩阵运算库
  20. 海康威视RSTP摄像头视频数据从内网读取在web用HLS播放

热门文章

  1. 有关C#中的引用类型的内存问题
  2. java 编程规范 check list
  3. 完美配置Tomcat的HTTPS
  4. 中国ERP软件发展趋势
  5. 5.剑指Offer --- 优化时间和空间效率
  6. 4. PHP 操作 memcache(1)
  7. Magento url 问题
  8. 第2讲 ZF2.4 最新框架搭建
  9. php 还原mysql_PHP备份/还原MySQL数据库的代码
  10. javascript中的取input对象集合与php中取input数组的区别