Algorithm 该伪码算法的运行时间

Algorithm 该伪码算法的运行时间,algorithm,runtime,quicksort,mergesort,Algorithm,Runtime,Quicksort,Mergesort,以下算法的运行时间是多少: algo1(int n){ i = n*n; while(i > 1){ i = i/2; } } algo2(int A[0...n-1], int n){ mergeSort(A, 0, n-1); quickSort(A, 0, n-1); } while循环将执行log(n^2)次,相当于2log(n),因此运行时间为θ(logn),这样说对吗 现在,看看第二种算法: algo1(int n){ i =

以下算法的运行时间是多少:

algo1(int n){
   i = n*n;
   while(i > 1){
      i = i/2;
   }
}
algo2(int A[0...n-1], int n){
   mergeSort(A, 0, n-1);
   quickSort(A, 0, n-1);
}
while循环将执行log(n^2)次,相当于2log(n),因此运行时间为θ(logn),这样说对吗

现在,看看第二种算法:

algo1(int n){
   i = n*n;
   while(i > 1){
      i = i/2;
   }
}
algo2(int A[0...n-1], int n){
   mergeSort(A, 0, n-1);
   quickSort(A, 0, n-1);
}
mergeSort将在时间O(nlog(n))内执行运行。假设快速排序始终选择数组右端的元素作为枢轴,则快速排序的运行时间将是最坏的情况场景O(n^2)。那么运行时是θ(n^2)


谢谢你的帮助

。但是你不应该一次问两个不同的问题。快速排序在最坏的情况下是O(n^2),在平均情况下是O(n log(n))。@LorenPechtel但是如果你先使用合并排序,然后总是选择第一个或最后一个元素作为轴心,你会得到O(n^2)。