例子问题
例子问题1:比较运行时间
For (int I = 0;I < n;+ + i) {
For (int j = 1;J < n;J *= 2){
someFunction ();
}
}
对于上面的代码,用大O符号表示的运行时是多少?
可能的答案:
以上都不是
O(nlogn)
O ()
O(logn))
O(n)
正确答案:
O(nlogn)
解释:
乍一看,我们可能会倾向于选择O()因为有2个for循环。但是,经过仔细检查,我们可以看到第一个循环将产生O(n)的运行时间,但第二个循环不会。第二个循环只有O(log(n))的运行时间,因为“j”每次迭代都翻倍,并且不线性增加。这将产生O(log(n)),因为O(log(n))的运行时间要快得多。最终结果是O(nlog (n))
顶尖城市的计算机科学辅导:
亚特兰大计算机科学辅导,奥斯汀计算机科学辅导,波士顿计算机科学辅导,芝加哥计算机科学辅导,达拉斯沃斯堡计算机科学辅导,丹佛计算机科学辅导,休斯顿计算机科学辅导,堪萨斯市计算机科学辅导,洛杉矶计算机科学辅导,迈阿密计算机科学辅导,纽约市计算机科学辅导,费城计算机科学辅导,凤凰计算机辅导,圣地亚哥计算机科学辅导,旧金山湾区计算机科学辅导,西雅图计算机科学辅导,圣路易斯计算机科学辅导,图森计算机科学辅导,华盛顿特区计算机科学辅导
顶尖城市的计算机科学导师:
亚特兰大计算机科学导师,奥斯汀计算机科学导师,波士顿计算机科学导师,芝加哥计算机科学导师,达拉斯沃斯堡计算机科学导师,丹佛计算机科学导师,休斯顿计算机科学导师,堪萨斯城计算机科学导师,洛杉矶计算机科学导师,迈阿密计算机科学导师,纽约市计算机科学导师,费城计算机科学导师,凤凰计算机科学导师,圣地亚哥计算机科学导师,旧金山湾区计算机科学导师,西雅图计算机科学导师,圣路易斯计算机科学导师,图森计算机科学导师,华盛顿特区计算机科学导师