以下算法的运行时间是什么:
algo1(int n){
i = n*n;
while(i > 1){
i = i/2;
}
}
说while循环执行log(n ^ 2)次是否正确,相当于2log(n),因此运行时间为theta(logn)
现在,看看第二个算法:
algo2(int A[0...n-1], int n){
mergeSort(A, 0, n-1);
quickSort(A, 0, n-1);
}
mergeSort将在时间O(nlog(n))中执行运行。假设quickSort总是选择数组右端的元素作为枢轴,那么快速排序的运行时间将是最坏的情况O(n ^ 2)。那么运行时将是theta(n ^ 2)?
感谢您的帮助!