快速排序QuickSort
快速排序是基于划分的排序。
具体过程就不表了。
划分算法
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相关推荐
- 快速排序(quicksort)算法实现
快速排序(quicksort)是分治法的典型例子,它的主要思想是将一个待排序的数组以数组的某一个元素X为轴,使这个轴的左侧元素都比X大,而右侧元素都比X小(从大到小排序).然后以这个X在变换后数组的 ...
- 快速排序(quickSort) 和 插入排序(insertSort)
1.快速排序(quickSort) (1)在数据集之中,选择一个元素作为"基准"(pivot). (2)所有小于"基准"的元素,都移到"基准" ...
- quicksort java_Java代码实现快速排序(QuickSort)
Java代码实现快速排序(QuickSort) 核心思想 如果要排序数组中下标从p到r之间的一组数据,我们选择p到r之间的任意一个数据为pivot(分区点). 我们遍历p到r之间的数据,将小于pivo ...
- 数据算法之快速排序(quickSort)的Java实现
本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. 快速排序的基本思想是通过一 ...
- 排序1+3:基数排序(RadixSort),希尔排序(ShellSort)和快速排序(QuickSort)
1 基数排序 基数排序对于整数特别有效.是一种稳定的算法(意思是相同的数字不会交换关系).基数排序是根据数字的性质来逐步根据个位数,十位数,百位数分类求得排序结果的方法之一.它的想法如下: (1)先将 ...
- 快速排序--QuickSort()--递归版本
一.快速排序(递归版本) 1.快速排序模板(初始版本) void QuickSort(int* a, int begin, int end) {// 区间不存在,或者只有一个值则不需要在处理if (b ...
- 快速排序(QuickSort)算法介绍
算法简介 快速排序(Quicksort)是对冒泡排序的一种改进算法.由C. A. R. Hoare在1960年提出.该算法使用广泛.效率很高,是最重要的排序算法之一. 该算法的实现基本可分为以下几步: ...
- 快速排序-QuickSort
一.基本思想 1.在快速排序中,采取的主要的"拆"的思想 2.每一次将数组拆为两个部分,令中间元素为pivot,pivot左边的所有元素都会小于pivot,而pivot的右边的所有 ...
- java快速排序quicksort
public class QuickSortDemo {public static void main(String[] args) {int[] arr = {12,36,56,44,9,44,18 ...
- 排序算法--快速排序(QuickSort)、 3区快速排序(3 Way QuickSort)原理、适用场景及代码示例
快速排序 概念介绍 QuickSort快速和归并排序一样,是采用分治法解决问题的一个典型应用.它选择一个元素作为基准元素,并围绕选定的基准元素对给定数组进行分区. quickSort有很多不同的版本, ...
最新文章
- mysql more_mysql中哪种日志不能直接cat或more
- 多传感器信息融合算法总结
- 计算机中缺少d3dx9_35.dll,d3dx9_35.dll丢失怎么办-d3dx9_35.dll丢失的解决办法
- 肝!不需要一行 Python 代码,也可以自动获取数据
- 集训2--进程控制理论
- HDLBits答案(19)_Verilog有限状态机(6)
- Shell 变量的操作方法
- 2019蓝桥杯省赛---java---C---1(求和)
- 使用JAX-RS和Spring构建HATEOAS API
- JavaScript-DOM(2)
- Java程序员已经饱和了,还有必要培训Java编程嘛
- 20181027 考试记录
- (转载)web.xml中 IntrospectorCleanupListener的作用
- 求 一个 quality center explorer 9.0的 百度网盘 或是别的下载地址的链接
- SOFR, So Far ... So Good?
- MySQL的主键,索引设置和添加
- 【机房重构】-UNL图回顾
- 关于SQL数据表存储过程表名前缀换成dbo代码
- 用 Golang 实现矩阵运算库
- 海康威视RSTP摄像头视频数据从内网读取在web用HLS播放