当前位置:  开发笔记 > 人工智能 > 正文

近排序算法 - 何时使用?

如何解决《近排序算法-何时使用?》经验,为你挑选了1个好方法。

我不时浏览网页,寻找有趣的算法和数据结构,放入我的技巧包中.一年前,我遇到了Soft Heap数据结构并了解了近乎排序.

这背后的想法是,如果您可以接受排序算法作弊的事实,则可以打破基于比较的排序的O(n log n)障碍.你得到一个几乎排序的列表,但你也必须忍受一些错误.

我在测试环境中使用了算法,但从未找到它们的用途.

所以问题是:有没有人在实践中使用过近排序?如果是这样的应用程序?你能想到一个近距离排序是正确的用例吗?



1> Steve Jessop..:

这是一个完全的飞行猜测,但鉴于在对搜索结果进行排序时"相关性"度量的固有主观性,我冒昧地认为它们是否完美排序并不重要.对于建议也可以这样说.如果你能以某种方式安排算法的每个其他部分都是O(n)那么你可能会想要避免排序.

还要注意,在最坏的情况下,您的"近乎排序"的数据符合"几乎排序"的一个可能的直观概念,即它只有少量的反转.这样做的原因只是如果您的数据只有O(n)反转,那么您可以使用插入排序或鸡尾酒排序(即双向冒泡排序)在O(n)时间内完成排序.因此,在O(n)时间内(使用比较),你不可能从完全未排序到达这一点.因此,您正在寻找对数据的大部分子集进行排序而其余部分是分散的应用程序,而不是针对要求每个元素都接近其正确位置的应用程序.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有