选择排序不重复

时间:2014-03-20 15:00:59

标签: selection-sort

我必须实现选择排序算法的变体。 在此变体中,算法必须删除重复的数字。

我设法通过对矢量进行排序,然后在后续循环中删除重复的元素来实现这一目的。

我想还有另一种更有效的方法来完成这项工作,但我想不出任何事情。 你们有什么建议吗?

1 个答案:

答案 0 :(得分:0)

效率差异将是微不足道的,因为您有意使用二次时间算法来处理我们知道可以更快完成的事情。 n 2 和n 2 + n之间的差异在某一点之后非常不重要,因为它基本上是n *(n + 1)。

有了这个警告,选择排序属于我们称之为“#34;比较排序”的类别,"因为放置的决定是基于成对比较做出的。非比较排序类似于计数排序:我们找到了每个对象的数量?除了我们现在正在查看的内容之外,我们并不关心任何其他元素。

所以,因为你需要比较每对元素的大小,你应该已经知道当时是否有重复。

但是,这可能不是整个故事。如果不仔细处理,如何管理这些重复值可能比一个循环更容易花费更多时间。