什么是大哦符号w.r.t排序算法

时间:2013-02-12 22:29:48

标签: java sorting big-o

Big Oh如何计算排序算法?我编写了一个程序,使用Selection sort,Merge sort和Insertion sort对一副牌(n = 52)进行排序。对于每个排序算法,我必须计算计算成本。我该怎么做?

现在我会诚实地承认这是我作业的一部分,但我只是在寻求帮助。我是Big Oh表示法的新手并经历了几个网站,但在排序算法方面无法弄明白。

至少有人能给我提示吗?

我刚才提到维基百科的选择排序,插入排序&合并排序。

插入排序: 最佳案例:O(n),最坏情况和平均情况:O(n ^ 2)

选择排序: 所有三种情况的O(n ^ 2)

合并排序: 所有三种情况的O(nlog n)

这是真的吗?

1 个答案:

答案 0 :(得分:2)

您正在搜索的内容称为复杂性,在您的情况下可能就运行时而言。 “大O”代表上边界,而“小O”代表较低边界,平均值是“Theta”。它们代表用于执行程序的时间步长的功能,与缩放和添加无关。

示例:如果您的排序算法迭代每个列表(大小n)项目一次(例如使用for循环)并且每个步骤再次循环遍历其他所有项目(在那里执行l步骤​​),那么您将需要大约l * n * n步骤加上一些k步骤进行准备等。这将导致O(l*n*n + k)的复杂性,等于O(n*n) = O(n^2),因为l和k是常数。

更多更深入的信息:http://en.wikipedia.org/wiki/Time_complexity