永发信息网

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

答案:4  悬赏:70  手机版
解决时间 2021-11-07 23:57
电脑编程中快速排序的时间复杂度n log n 是n*log(n)还是什么
最佳答案
问题中两者选择的答案是相同的,且是正确的,n log n 即等于n*log(n),其中*代表乘,默认底数为2.
快速排序的复杂度为log以2为底,n^2的对数,也就是O(n^2),如排序10个数,最坏的情况就是O(10^2)=O(100)≈33
全部回答
数据结构中logn一般表示2为底数,如果不是的话,才会明确标明。
复杂度的表示式里面只看幂级不看具体底数,log n跟log2n是一回事,感觉你有些概念不清的样子,时间复杂度的n就表示算法处理的数字个数,快速排序的时间复杂度就是n log n,快速排序10个数的时间复杂度也还是n log n,你可以说n=10,但是时间复杂度的表示式里面要求把具体的输入个数用n表示,因为这样才能反映出算法在输入个数增加的时候运行时间相应增加的程度,也就是“时间复杂度”这个概念本身想说明的问题。追问那比如n=10和n=20运算次数差了几倍呢?我指n log n的复杂度追答复杂度是抽象于运算次数的,它只是表明了一个算法实现所需要的运算次数随输入个数增加而增加的“速度”,是一个“度”而不是一个“数”。所以在比较时间复杂度的时候,我们比较的也同样只是“程度”而不是具体的运算“次数”,所以对于同一个算法(比如说你说的快速排序)来说,n=10跟n=100的复杂"程度"是一样的!因为复杂度本身就是把具体的输入个数抽象成n以后才能有表达式的。算法的时间复杂度是用来在算法之间互相比较的,比如说快速排序跟起泡排序两种不同的算法,快速排序的时间复杂度nlogn比起泡排序n^2更小,因为nlogn在n增大的时候增长的“速度”比n^2要快。

现在回答你的追问,在nlogn的复杂度下,n=10和n=20的运算次数都是未知的,所以不能比较差了几倍。
快速排序的平均复杂度是在n*log2(n)也就是nlog(n),在信息学中nlog(n)的底数默认为2。至于说快速排序10个数的时间复杂度,是没办法计算的,这个还是和这10个数的初始顺序有关。只能说排序10个数的平均复杂度在10*log2(10),如果这个10个序列差劲,复杂度也有可能是O(10^2)。(快速排序的最坏情况下的时间复杂度是O(n^2))
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求拉八九吨的蓝牌轻卡?望各位师傅指点一下应
飞机的机翼有什么用
云鹤中队草海镇道路交通事故快处快赔服务点地
一存根 二公司财务 三客户 四仓库 哪个可以用
在ping命令中,TTL的用途是什么?
苏州天幕电影什么时候放映
第13届南京品牌家博会3月10日—11日在哪里举
广州圣丰广场哪家特色美食最正宗
2.4×1.2和5分之9×1.6谁大
至子叫大伯的老婆叫什么
老师祝福的话,简单一点,小学生三年级
求现代小说书名:讲女主为了报答养父,做她养
请教法官和律师达人,反诉,一般情况下需要单
动物的受精卵分动物极与植物极,这是什么意思
你的电脑不是引导BIOS不能引导MBR这个要怎么
推荐资讯
求一本小漫威小说主角在里面是修仙者
东阳有收购古家具的地方吗我家有清代古床
网络语言小鸡炖蘑菇是什么意思
什么是数字模型?
清炒白芦笋的做法步骤图,清炒白芦笋怎么做好
紫砂壶与盖碗泡茶有何区别
湖南平江县社保局地址在哪里
梦见己死了的人杀五爪猪
重庆北站到华云有几次列车.
湖北离兰州多远
我们怎么样去与众生修持自他相换?
测亩仪价格/田亩计亩器哪种好
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?