首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以中间元素为枢轴的快速排序算法状态

以中间元素为枢轴的快速排序算法状态
EN

Stack Overflow用户
提问于 2015-03-03 11:57:19
回答 1查看 767关注 0票数 1

我需要帮助准确理解快速排序算法是如何工作的。我一直在看教学录像,但仍然没有完全理解它。

我有一个未排序的列表: 1、2、9、5、6、4、7、8、3,我必须使用6作为枢轴快速排序。我需要在每个分区过程之后查看列表的状态。

我的主要问题是理解元素在枢轴前后的顺序。所以在这个例子中,如果我们把6作为枢轴,我知道数字1-5会在6之前,而7-9会在那之后。但是,给出上面的列表,在第一个分区中,数字1-5和7-9的顺序是什么?

下面是我想要使用的分区算法(bear使用中间元素作为我的初始枢轴):

  1. 确定枢轴,并将其与列表的第一个元素交换。

假设索引smallIndex指向小于枢轴的最后一个元素。索引smallIndex被初始化为列表的第一个元素。

  1. 对于列表中的其余元素(从第二个元素开始),如果当前元素小于枢轴 a.增量smallIndex b.用smallIndex指向的数组元素交换当前元素。
  2. smallIndex指向的数组元素交换第一个元素,即支点。

如果有人能够在算法中的列表发生每一个小变化后显示列表,那将是令人惊奇的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-03 12:16:26

无所谓。

重要的是--分区过程所断言的--在运行它之后,在中心点的左边没有比枢轴更大的值,并且右边没有小于枢轴值的值。

然后,在随后的每一半递归调用中处理两个分区的内部顺序。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28831243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档