2016-10-27 41 views
-2

我是Java开发人员,我想了解有关程序的复杂性及其计算? (我是初学者,请简单来说,我可以提前了解 感谢回答.. !!)什么是程序的复杂性以及如何计算它?

+1

试试这些作为基本的解释:https://justin.abrah.ms/computer-science/big-o-notation-explained.html https://rob-bell.net/2009/06/a-beginners -guide-to-big-o-notation/ – sprinter

+0

要查找有关时间复杂度的信息,请单击时间复杂度标记,然后单击数字下方右上角的*“about»”*。 – user3386109

+1

这可能不是这个问题的正确论坛,因为它非常广泛和复杂。我建议检查一下这方面的一些书面资料。我自己,从这里学到了它(https://www.google.se/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=khan+academy+time+complexity) – Gikkman

回答

0

一般而言,复杂性是您必须执行的一系列操作才能实现您的目标。

复杂性被标记为O(n),其中n是复杂性。例如,分配的复杂性是O(1)。

访问数组元素的复杂性也是O(1)。对数组,集合,映射等所有元素进行迭代的复杂度为O(n),其中n是集合元素的数量。例如,如果要查找n元素数组的所有元素的总和,则必须执行复杂度为O(n)的操作。

请注意查找数组的特定元素的复杂性也是n虽然平均操作数是n/2,因为元素可能在第一个,最后或任何其他位置。

排序的复杂性取决于算法。简单的算法对O(n^2)的复杂度进行排序,而较快的短算法则有O(n * ln(n))。

+1

快速排序不具有ln(n)复杂性。 –

+0

https://en.wikipedia.org/wiki/Quicksort#Formal_analysis –

+0

@AndyTurner,当然,谢谢,修正。它是n * ln(n) – AlexR

0

有2种类型的复杂性 1.空间复杂度 2.时间复杂度

的时间要求程序(或循环或语句)的执行被视为时间复杂性。程序所需的空间或内存被认为是空间复杂性。这两种复杂性都以Big Oh符号来衡量。

相关问题