排序算法实现

时间:2014-10-13 10:33:02

标签: java algorithm sorting quicksort mergesort

第一次发表海报,对不起,如果我打破任何礼仪。 我正在研究我的数据结构和算法中期,我有一个我不太懂的练习题。

假设您有一个N个元素的排序列表 其次是f(N)随机元素。

如果f(N)= O(1),您如何对整个列表进行排序?

如果你如何排序整个列表? f(N)= O(log N)?

我们已经完成了大量的排序算法,但考试的重点是插入,快速和合并排序。如果F(N)= O(log N),我真的不明白它意味着什么。是否使用Big oh表示法表示最终的大部分随机元素在每个方面都是常量或log(N)。

感谢您的任何见解。

编辑:修复了我在Big Oh表示法方面的明显错误,但不确定从哪里开始。

1 个答案:

答案 0 :(得分:1)

在第一个示例中,您遇到了一个问题,其中常量的非有序元素遵循已排序的序列。实质上,这意味着您可以实现一个算法来插入一个非有序元素,然后重复几次。插入所有f(N)= O(1)元素的总体复杂性将是相同的。您提到的算法之一最好是执行此操作。

在第二种情况下,您要按log(n)的顺序插入多个元素。在这种情况下,您不能忽略此数字,因为它取决于输入大小。因此,您需要考虑一种更智能的方法将其与已经排序的剩余部分合并。 (提示:您可能需要执行的操作可以帮助您选择算法吗?)