范文无忧网范文学习范文大全

哪位帮我讲讲java中的快速排序法

01月31日 编辑 fanwen51.com

[c语言整数数组排序]#include"stdio.h" #define N 10 void sort(int a[],int method) { int i,k,t,j; switch(method) { case 1: for(i=0;i<N;i++) { for(j=0;j<N;j++) { if(a[j]>a[i]) { t=a[i];...+阅读

快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。最坏情况的时间复杂度为O(n2),最好情况时间复杂度为O(nlog2n)。

另外 java没指针概念 可以认为是句柄

假设要排序的数组是A[1]……A[N],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一躺快速排序。一趟快速排序的算法是:

1)、设置两个变量I、J,排序开始的时候I:=1,J:=N;

2)以第一个数组元素作为关键数据,赋值给X,即X:=A[1];

3)、从J开始向前搜索,即由后开始向前搜索(J:=J-1),找到第一个小于X的值,两者交换;

4)、从I开始向后搜索,即由前开始向后搜索(I:=I+1),找到第一个大于X的值,两者交换;

5)、重复第3、4步,直到I=J;

例如:待排序的数组A的值分别是:(初始关键数据X:=49)

A[1] A[2] A[3] A[4] A[5] A[6] A[7]:

49 38 65 97 76 13 27

进行第一次交换后: 27 38 65 97 76 13 49

( 按照算法的第三步从后面开始找)

进行第二次交换后: 27 38 49 97 76 13 65

( 按照算法的第四步从前面开始找>X的值,65>49,两者交换,此时I:=3 )

进行第三次交换后: 27 38 13 97 76 49 65

( 按照算法的第五步将又一次执行算法的第三步从后开始找)

进行第四次交换后: 27 38 13 49 76 97 65

( 按照算法的第四步从前面开始找大于X的值,97>49,两者交换,此时J:=4 )

此时再执行第三步的时候就发现I=J,从而结束一躺快速排序,那么经过一躺快速排序之后的结果是:27 38 13 49 76 97 65,即所以大于49的数全部在49的后面,所以小于49的数全部在49的前面。

快速排序就是递归调用此过程——在以49为中点分割这个数据序列,分别对前面一部分和后面一部分进行类似的快速排序,从而完成全部数据序列的快速排序,最后把此数据序列变成一个有序的序列,根据这种思想对于上述数组A的快速排序的全过程如图6所示:

初始状态 {49 38 65 97 76 13 27}

进行一次快速排序之后划分为 {27 38 13} 49 {76 97 65}

分别对前后两部分进行快速排序 {13} 27 {38}

结束 结束 {49 65} 76 {97}

49 {65} 结束

结束

延伸阅读:

应聘美术老师五分钟试讲讲些什么内容比较好首先你得相信自己。相信自己的能力,能学以致用。我还不知道你要应聘的是小学,中学的,还是大学的。如果是美院毕业的,我觉得这个应该不难。要是师范毕业的,应该也不难。试讲时间很...

数据结构课程设计二叉排序树的实现用顺序和二叉链表作存储结构/*以下是用c++ 实现的二叉排序树的源代码*/ #includetypedef struct TreeNode { int key; struct TreeNode *left; struct TreeNode *right; }treeNode; class BiSortTree {...

谁能讲讲梵高的故事梵高生性怪癖,不善于与人交际 到遇见少女厄休拉之后 就完全改变了以往的个性。他卷入了爱的旋涡中,但当他向厄休拉求爱时,厄休拉告诉梵高,自己已在一年前就订了婚。梵高深受打击...

高清网络电视机顶盒排序顺序是怎样的高清网络电视机顶盒排名: NO.1:海尔网络电视机顶盒(中国知名的品牌,驰名商标,位于中国青岛 NO.2:杰科网络电视机顶盒(深圳杰科电子有限公司产品) NO.3:飞利浦网络电视机顶盒(世界最大...

大学教师的职称评定以及具体排序1、申报讲师任职资格者,需具备下列条件之一: (1)大学本科毕业并取得学士学位,担任助教职务4年以上; (2)硕士研究生毕业并取得硕士学位,从事本专业工作3年以上。 2、申报副教授任...

知识分子臭老九其他的人的排序一、官(政府官员)。 二、吏(不能擢升为官员的政府雇员)。 三、僧(佛教僧侣)。 四、道(道教道士)。 五、医(医生)。 六、工(高级工程技术人员)。 七、匠(低级手工技术人员)。 八、娼(妓女)。...

什么是高考位次高考位次的排序标准是什么所谓高考位次就是指文史类或者理工类考生的高考成绩在全省该科类考生中属于哪个位置。 (1)位次不是名次,而是指考生成绩和考生人数总和后的综合排序; (2)高考分数最高的考生位次为...

高三历史怎么复习啊能讲讲不管你多不耐烦,都要不停的看书,一个字都不放过,从目录开始,一直到末尾,用心去看,一遍遍看下来,印象肯定深刻,教过我的历史老师都这么说。 有两种情况: 如果你现在高二,那还有很多时间...

请教老师给讲讲它的优点和缺点好吗玉妹妹好,这个坦克我刚好认识,万幸万幸,简单说下吧,呵呵。 这是前苏联的T54中型坦克。 T-54坦克由T-44坦克演变过来,第一辆样车于1946年制成,1947年投产,总产量达到惊人的50000辆。...

推荐阅读
图文推荐
栏目列表