有如下一组数:6 5 4 2 7 3 1 8要求用快速排序,而且,1.要把7做为中央值,分割成两个组2.再将由1分得的元素数较多的组再分割成两个组.3.再将由2分得的元素数较多的组再分割成两个组.请问该怎么

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 15:00:34
有如下一组数:6 5 4 2 7 3 1 8要求用快速排序,而且,1.要把7做为中央值,分割成两个组2.再将由1分得的元素数较多的组再分割成两个组.3.再将由2分得的元素数较多的组再分割成两个组.请问该怎么

有如下一组数:6 5 4 2 7 3 1 8要求用快速排序,而且,1.要把7做为中央值,分割成两个组2.再将由1分得的元素数较多的组再分割成两个组.3.再将由2分得的元素数较多的组再分割成两个组.请问该怎么
有如下一组数:
6 5 4 2 7 3 1 8
要求用快速排序,而且,
1.要把7做为中央值,分割成两个组
2.再将由1分得的元素数较多的组再分割成两个组.
3.再将由2分得的元素数较多的组再分割成两个组.
请问该怎么分,不要求程序,只要给出每次分组的情况说明就可以.

有如下一组数:6 5 4 2 7 3 1 8要求用快速排序,而且,1.要把7做为中央值,分割成两个组2.再将由1分得的元素数较多的组再分割成两个组.3.再将由2分得的元素数较多的组再分割成两个组.请问该怎么
基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列.
设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序.一趟快速排序的算法是:
1)设置两个变量I、J,排序开始的时候:I=0,J=N-1;
2)以第一个数组元素作为关键数据,赋值给key,即 key=A[0];
3)从J开始向前搜索,即由后开始向前搜索(J=J-1),找到第一个小于key的值A[J],并与A[I]交换;
4)从I开始向后搜索,即由前开始向后搜索(I=I+1),找到第一个大于key的A[I],与A[J]交换;
5)重复第3、4、5步,直到 I=J; (3,4步是在程序中没找到时候j=j-1,i=i+1,直至找到为止.找到并交换的时候i, j指针位置不变.另外当i=j这过程一定正好是i+或j+完成的最后另循环结束) 6 5 4 2 7 3 1 8
以7为key进行排序:
第一次交换:6 5 4 2 3 7 1 8
第二次交换:6 5 4 2 3 1 7 8
至此完成第一趟排序得到{6 5 4 2 3 1} 7 {8}两个部分再按以上思想进行排序;
对于前一部分假设以4为key进行排序后半部分只有一个数就不要排了:
第一次交换:4 5 6 2 3 1
第二次交换:2 5 6 4 3 1
第三次交换:2 5 6 3 4 1
第四次交换:2 5 6 3 1 4
第五次交换:2 4 6 3 1 5
第六次交换:2 3 6 4 1 5
第七次交换:2 3 4 6 1 5
第八次交换:2 3 1 6 4 5
第九次交换:2 3 1 4 6 5
至此完成第二趟排序得到{2 3 1} 4 {6 5}两个部分再按以上思想进行排序;
前半部分得到{1 2 3},后半部分得到{5 6};
至此排序结束.
希望对LZ有帮助.

有一组数,其排列形式如下:11,19,9,12,5,20,1,18,4,16,6,10,15,2,17,3,14,7,13,8,让 新手求编个pascal语言简单程序有一组数,其排列形式如下:11,19,9,12,5,20,1,18,4,16,6,10,15,2,17,3,14,7,13,8,且尾部8和头部11首尾相连,构成环形的一组数,编程找出相邻的4个数,其相加之和最大,并给出它 有一组数据如下:2、3、4、5、6,则这组数据的方差为? 一堆贝壳 4个一组数余1个 5个一组数余2 个 6个一组数余3个求贝壳数 求高手用Pascal语言编写以下程序【问题描述】有一组20个数,其排列形式如下:11,19,9,12,5,20,1,18,4,16,6,10,15,2,17,3,14,7,13,8,且尾部8和头部11首尾相连,构成环形的一组数,编程找出相邻的4个数,其相加 有一组有规律的数:1,-2,3,-4,5,-6,7,-8,9.第n个数怎么表示 有两个代表队各四人进行答题竞赛.现把数据统计如下:第一组:编号:1号 2号 3号 4号做对题数:16 22 9 7第二组:编号:5号 6号 7号 8号最对题数:14 12 10 8现要发两个奖项,一个人是金牌.另一 观察下列一组数:1/2,3/4,5/6,7/8,.,它们是按一定规律排列的,那么这一组数的第2010个数是() 观察一组数:1/2,3/4,5/6,7/8,-------,它们是按一定规律排列的.这一组数的第k个数是__________ 一组数剧如下:1+a,2-a,3+a,4+a,...,则第2012个数是? 有一组数共有25个,排列如下:1,6,11,16,21.,这些数的总和是( ) 猜数字游戏中小明写出如下一组数猜数字游戏中,小明写出如下一组数:猜数字游戏中,小明写出如下一组数:2/5,4/7,8/11,16/19,32/35.小亮猜想出第六个数是64/67,根据此规律,第n个数为()上课没 学校对初一男生进行立定跳远的测试,以能跳1.7m及以上为达标,超过1.7m的厘米数用正数表示,不足1.7m的厘米数用负数表示第一组成绩如下2,负4,0,5,8,负7,0,2,10,负3问:第一组有百分之几的学生达 学校对初一女生进行立定跳远的测试,以能跳1.6M及以上为达标,超过1.6m厘米数用正数表示.单位:cm.不足1.6m的厘米数用负数表示,第一组10名女生的成绩 如下+2 -4 0 +5 +8 -7 0 +2 +10 -3 问:第一组有 观察下列一组数:1/2,3/4,5/6,7/8.第K个数是什么 有一组数,1,3/4,2/3,5/8.,第100个数是多少 有一组数2,3,5,7,11,13 下一个数是什么 有两组数,我想编程求后一组各个数比对应的前一组数大的概率,请问能用matlab编程吗?比如说1、3、5、7、9和2、4、6、8、10两组数,2大于1,4大于3····后一组各数都比对应的前一组数大,所以概