2 cwh6319 cwh6319 于 2017.01.05 17:26 提问

请问快速排序的原理是什么?

请问快速排序的原理是什么?
哪位老师能给简单的说下,不需要代码就行

2个回答

welan123123
welan123123   2017.01.05 17:30
已采纳

你运气好,碰上了也闲得蛋疼的我

快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。

该方法的基本思想是:

1.先从数列中取出一个数作为基准数。

2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。

3.再对左右区间重复第二步,直到各区间只有一个数。

cwh6319
cwh6319 谢谢你
一年多之前 回复
welan123123
welan123123   2017.01.05 17:28

这种问题问一下度娘秒秒钟就有答案了,真是闲得蛋疼

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
请问spfa+stack 和spfa+queue 是什么原理
一个是bfs加迭代 一个是dfs加迭代 请问迭代是什么 就是不断地做,做到没有更优的解为止 或者是不断得做,做到逼近答案为止。。
快速排序原理剖析
高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。 假设我们现在对“6  1  2 7  9  3  4  5 10  8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列
快速排序原理及java实现
快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。最坏情况的时间复杂度为O(n2),最好情况时间复杂度为O(nlog2n)。   假设要排序的数组是A[1]……A[N],首先任意选取一个数据(通常
快速排序的原理以及Java代码
1.概念:所谓排序就是比较两个关键字大小,然后将一个序列的记录从一个位置移动到另一个位置,以达到一个从小到大的有序的序列,快速排序属于交换排序的一种。 2.基本思想:它的基本思想是通过一趟排序,将待排序记录分割成独立的两部分,其中一部分均比关键字小,另一部分均比关键字大,然后对分出来的两部分进行递归排序,直到待排序记录只有一条即可, 3.优势:它的优势是在于排列后的左侧记录不用和右侧的记录再次
请问@Override是什么意思
请问@Override是什么意思 2008-12-25 10:11iamflytwo | 分类:网站使用 final JLabel label; class MeaningOfLifeFinder extends SwingWorker { @Override public String doInBackground() { return findTheMeaningOfLife();
(VC++)请问INT_PTR 是什么?
http://zhidao.baidu.com/question/86833633.html&__bd_tkn__=70a1453a72259b2e131aa3668dfd3da5941e8ef48078338d51fed8133ea5c69d362ad36bb4bcda3b39bb3949f6bbe47087ac3af56e60b1f4e7eb6015705af5319e61aafb40491f
请问进程上下文是什么意思?
请问进程上下文是什么意思? 回答者的答案集合: 1. 进程上下文一般在进程切换中提到,也就是当进程要切换时关于当前进程的寄存器内容以及内存页表的详细信息等等内容,一句话概括也就是关于描述进程的信息。 2. 同意楼上的,就是很多书本上提到的进程控制块PCB,保存着进程的很多详细信息 3. 补充(LINUX完全注释中的一段话):
请问,虚拟客户端是什么?
单位以后不买台式机了,据说要换成虚拟客户端了,不知道有没有朋友了解这个? 我听说就是工位上的“主机”里没有硬盘和内存,当然也就没有操作系统和软件了,这种情况下,对一般的使用者应该没有太大的区别,但请问,这对一些有开发需求的用户是否会有较大的区别呢(比如说,注册个Dll文件什么的)?请问会有什么样的区别呢?谢谢!
【排序算法】快速排序原理及Java实现
快速排序是我们之前学习的冒泡排序的升级,他们都属于交换类排序,都是采用不断的比较和移动来实现排序的。快速排序是一种非常高效的排序算法,它的实现,增大了记录的比较和移动的距离,将关键字较大的记录从前面直接移动到后面,关键字较小的记录从后面直接移动到前面,从而减少了总的比较次数和移动次数。同时采用“分而治之”的思想,把大的拆分为小的,小的拆分为更小的,其原理如下:
快速排序原理解析及实例应用
快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。最坏情况的时间复杂度为O(n2),最好情况时间复杂度为O(nlog2n)。   假设要排序的数组是A[1]……A[N],首先任意选取一个数据(通常