需要帮助研究运行时间

| 目前,我正在为计算机科学课程的期末考试而学习。将要提出的问题之一很可能是有关如何组合运行时间的问题,因此我举一个例子。 我想知道,如果我创建了一个使用插入排序对输入进行预处理的程序,然后使用二进制搜索来搜索值“ X”,那么我将如何结合运行时间来找到最佳,最差和平均情况下的时间复杂度整个程序? 例如... 插入排序 最差情况O(n ^ 2) 最佳情况O(n) 平均情况O(n ^ 2) 二元搜寻 最差情况O(登录) 最佳情况O(1) 平均情况O(登录) 最坏的情况是O(n ^ 2 + logn),还是O(n ^ 2),或者都不是? 最好的情况是O(n)吗? 平均情况是O(nlogn),O(n + logn),O(logn),O(n ^ 2 + logn)还是都不是? 我倾向于考虑过多的解决方案,因此,如果我能获得有关组合运行时间的任何指导,将不胜感激。 非常感谢你。     
已邀请:
通常,您不需要\“组合\”(如添加)来确定整体效率等级,而是在每个最坏,平均和最佳的情况下都选择花费最长的时间。 因此,如果要执行插入排序,然后在找到数组中的元素X之后执行二进制搜索,则最差的情况是O(n ^ 2),而最坏的情况是O(n)-全部来自插入排序,因为它花费的时间最长。     
根据我的有限研究,(我们尚未达到Amortization,所以这可能是Jim可以正确解决的地方),但基本上,您只是以总体算法中最慢的那个为准。 这似乎是一本关于算法的好书(我没有什么可比的): http://www.amazon.com/Introduction-Algorithms-Third-Thomas-Cormen/dp/0262033844/ref=sr_1_1?ie=UTF8&qid=1303528736&sr=8-1 麻省理工学院的网站上也有关于算法的完整课程,这里也是该链接! http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/ 实际上,我发现它很有帮助,它可能无法具体回答您的问题,但是我认为这将使您更加自信地看到几次解释的主题。     

要回复问题请先登录注册