快速排序最佳案例方案的示例(需要有人检查我的答案是否正确)

快速排序最佳案例方案的示例(需要有人检查我的答案是否正确),第1张

快速排序最佳案例方案的示例(需要有人检查我的答案是否正确)

Quicksort最佳情况的一个条件是,枢轴始终在中间正确打点(也许在最后阶段除外),因此,绝对是正确的。最重要的是,您希望交换尽可能少,具体的配置取决于实现细节。

一种常见的实现方式是先将数据透视表交换到最后一个位置,然后排列其他元素,以使小于(或等于)数据透视表的元素出现在较大的元素之前,最后将数据透视表(从最后一个位置)交换为第一个较大的元素(然后重复出现)。

另一种方法是在安排之前将枢轴放入第一个插槽中,并与最后一个不超过枢轴的插槽交换。

对于绝对最佳的情况,这些策略需要不同的配置。例如,

4 1 3 5 6 7 2

是“将数据交换到最后一位”变体的最佳方案,而

4 1 3 2 6 5 7

是“支点固定”的最佳案例。

最坏的情况是,枢轴始终移到数组的一端,精确的细节再次取决于实现,但排序或反向排序通常是最坏的情况。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5652181.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存