电脑编程中快速排序的时间复杂度n log n 是n*log(n)还是什么

2025-03-03 06:17:31
推荐回答(4个)
回答1:

复杂度的表示式里面只看幂级不看具体底数,log n跟log2n是一回事,感觉你有些概念不清的样子,时间复杂度的n就表示算法处理的数字个数,快速排序的时间复杂度就是n log n,快速排序10个数的时间复杂度也还是n log n,你可以说n=10,但是时间复杂度的表示式里面要求把具体的输入个数用n表示,因为这样才能反映出算法在输入个数增加的时候运行时间相应增加的程度,也就是“时间复杂度”这个概念本身想说明的问题。

回答2:

快速排序的平均复杂度是在n*log2(n)也就是nlog(n),在信息学中nlog(n)的底数默认为2。至于说快速排序10个数的时间复杂度,是没办法计算的,这个还是和这10个数的初始顺序有关。只能说排序10个数的平均复杂度在10*log2(10),如果这个10个序列差劲,复杂度也有可能是O(10^2)。(快速排序的最坏情况下的时间复杂度是O(n^2))

回答3:

问题中两者选择的答案是相同的,且是正确的,n log n 即等于n*log(n),其中*代表乘,默认底数为2.
快速排序的复杂度为log以2为底,n^2的对数,也就是O(n^2),如排序10个数,最坏的情况就是O(10^2)=O(100)≈33

回答4:

数据结构中logn一般表示2为底数,如果不是的话,才会明确标明。