c – 如何进行三个快速排序中位数的最坏情况排列

c – 如何进行三个快速排序中位数的最坏情况排列,第1张

概述我知道快速排序的时间复杂性.但我想知道如何创建最坏情况的排列. 我想有一条规则要做到.我认为它真的很多,但对我来说太难了. 请告诉我如何创建三个快速排序的中位数的最坏情况,而不是正常的快速排序. (例如,如果pivot是列表中最左侧的项目,列表的最坏情况排列是排序列表,但是pivot的中位数是3?) here is my quick sort algorithm code 实际上,创建一个项目排列 @H_502_2@ 我知道快速排序的时间复杂性.但我想知道如何创建最坏情况的排列.

我想有一条规则要做到.我认为它真的很多,但对我来说太难了.

请告诉我如何创建三个快速排序的中位数的最坏情况,而不是正常的快速排序.
(例如,如果pivot是列表中最左侧的项目,列表的最坏情况排列是排序列表,但是pivot的中位数是3?)

here is my quick sort algorithm code

解决方法 实际上,创建一个项目排列并不会导致所有或甚至大多数Quicksort实现都出现最坏情况的行为.事实上,根据排序的实现方式,一次运行中的最坏情况数组在后续运行中可能会很好.如果实现使用中间随机三来选择枢轴,并且每次调用例程时使用不同的种子,则可能发生这种情况.

C qsort函数和许多其他库中的排序库函数很容易受到“Quicksort杀手”算法的影响,但它使用比较回调中提供的信息来动态创建最坏情况.令人惊讶的是,这并不困难.例如,参见A Killer Adversary for Quicksort.

@H_502_2@ 总结

以上是内存溢出为你收集整理的c – 如何进行三个快速排序中位数的最坏情况排列全部内容,希望文章能够帮你解决c – 如何进行三个快速排序中位数的最坏情况排列所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: https://outofmemory.cn/langs/1216065.html

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

发表评论

登录后才能评论

评论列表(0条)

保存