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)。