一组记录的关键字为{46,79,56,38,40,84},如利用快速排序方法,以第一个记录为枢轴得到的

 我来答
云中花蕾
高粉答主

2020-08-01 · 说的都是干货,快来关注
知道答主
回答量:1
采纳率:100%
帮助的人:8349
展开全部

以第一个记录为枢轴得到的是{40,38,46,79,56,84}

解题思路:

1、以46为分界值,通过该分界值将数组分成左右两部分。

2、从后向前,将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。

3、然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理。

4、重复上述过程,可以看出,这是一个递归定义。通过递归将左侧部分排好序后,再递归排好右侧部分的顺序。当左、右两个部分各数据排序完成后,整个数组的排序也就完成了。

扩展资料:

一趟快速排序的算法是:

1、设置两个变量i、j,排序开始的时候:i=0,j=N-1;

2、以第一个数组元素作为关键数据,赋值给key,即key=A[0];

3、从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将A[j]和A[i]的值交换;

4、从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]的值交换;

5、重复第3、4步,直到i=j; 3,4步中,没找到符合条件的值,即3中A[j]不小于key,4中A[i]不大于key的时候改变j、i的值,使得j=j-1,i=i+1,直至找到为止。找到符合条件的值,进行交换的时候i, j指针位置不变。另外,i==j这一过程一定正好是i+或j-完成的时候,此时令循环结束。 

参考资料来源:百度百科-快速排序算法

三滴小杜
2016-01-08 · TA获得超过107个赞
知道答主
回答量:4
采纳率:0%
帮助的人:2.3万
展开全部
40,38,46,56,79,84
快速排序法定义了,以46为基准数,把比它大的放在右边,小的放在左边。所以第一次得到的结果是40,38,46,56,79,84
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-01
展开全部
通常做法,都是以第一个数为支点
比如是第一次以46为支点
得到38,40,46,56,79,84
然后依次类推
这是快速排序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
咱抱抱
2015-07-01
知道答主
回答量:1
采纳率:0%
帮助的人:1219
展开全部
15 30 42 98 86 15 57
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
唐航1062109857
2011-06-18 · 超过24用户采纳过TA的回答
知道答主
回答量:124
采纳率:0%
帮助的人:85.6万
展开全部
什么语言的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式