这个算法的复杂性是什么?

时间:2015-10-14 03:17:04

标签: c++ algorithm complexity-theory

该算法将整数向量作为输入,并将最大值存储为max,让它在数组中保持其位置为p,然后将max元素存储在[p,n [等等]的范围内。

com.restfb.exception.FacebookOAuthException: Received Facebook error response of type OAuthException: An active access token must be used to query information about the current user. (code 2500, subcode null) 

我无法弄清楚最坏的情况,但似乎算法是线性的,因为while()工作得越多,堆栈大小就越小,并使未来的工作变得非常便宜。

1 个答案:

答案 0 :(得分:1)

最坏情况

您的程序的最大值是堆栈底部。您将执行push()操作N次。在最坏的情况下,您将pop() N-1次。 (因为你不能弹出超过N-1次,否则你将有空堆栈,这是违反计划目的的。)

最佳案例

最好的情况是当向量V的第一个元素处的最大值时。您仍然执行N push()操作,并且永远不会执行任何pop()操作。

因此,在一天结束时,无论向量V中的数据是什么,它都将在线性时间执行。