早教吧作业答案频道 -->其他-->
冒泡排序时间复杂度冒泡排序在最坏的情况下的比较次数是O(N^2)怎么有的就写冒泡排序在最坏情况下的比较次数是n(n-1)/2一头雾水
题目详情
冒泡排序时间复杂度
冒泡排序在最坏的情况下的比较次数是O(N^2)
怎么有的就写冒泡排序在最坏情况下的比较次数是n(n-1)/2
一头雾水
冒泡排序在最坏的情况下的比较次数是O(N^2)
怎么有的就写冒泡排序在最坏情况下的比较次数是n(n-1)/2
一头雾水
▼优质解答
答案和解析
我啰嗦两句,从头讲起。冒泡排序是一种用时间换空间的排序方法,最坏情况是把顺序的排列变成逆序,或者把逆序的数列变成顺序。在这种情况下,每一次比较都需要进行交换运算。举个例子来说,一个数列 5 4 3 2 1 进行冒泡升序排列,第一次大循环从第一个数(5)开始到倒数第二个数(2)结束,比较过程:先比较5和4,4比5小,交换位置变成4 5 3 2 1;比较5和3,3比5小,交换位置变成4 3 5 2 1……最后比较5和1,1比5小,交换位置变成4 3 2 1 5。这时候共进行了4次比较交换运算,最后1个数变成了数列最大数。
第二次大循环从第一个数(4)开始到倒数第三个数(2)结束。进行3次比较交换运算。
……
所以总的比较次数为 4 + 3 + 2 + 1 = 10次
对于n位的数列则有比较次数为 (n-1) + (n-2) + ... + 1 = n * (n - 1) / 2,这就得到了最大的比较次数
而O(N^2)表示的是复杂度的数量级。举个例子来说,如果n = 10000,那么 n(n-1)/2 = (n^2 - n) / 2 = (100000000 - 10000) / 2,相对10^8来说,10000小的可以忽略不计了,所以总计算次数约为0.5 * N^2。用O(N^2)就表示了其数量级(忽略前面系数0.5)。
打了那么多字应该解释的比较清楚了吧,什么地方看不明白再问吧
第二次大循环从第一个数(4)开始到倒数第三个数(2)结束。进行3次比较交换运算。
……
所以总的比较次数为 4 + 3 + 2 + 1 = 10次
对于n位的数列则有比较次数为 (n-1) + (n-2) + ... + 1 = n * (n - 1) / 2,这就得到了最大的比较次数
而O(N^2)表示的是复杂度的数量级。举个例子来说,如果n = 10000,那么 n(n-1)/2 = (n^2 - n) / 2 = (100000000 - 10000) / 2,相对10^8来说,10000小的可以忽略不计了,所以总计算次数约为0.5 * N^2。用O(N^2)就表示了其数量级(忽略前面系数0.5)。
打了那么多字应该解释的比较清楚了吧,什么地方看不明白再问吧
看了 冒泡排序时间复杂度冒泡排序在...的网友还看了以下:
冰心提倡写作要“真情实感,质朴浅显”,你对此有什么见解?请畅所欲言。冰心提倡写作要“真情实感,质朴 2020-04-06 …
英语翻译我厚着脸皮说一下吧,我把自己的心情跟我喜欢的人说了,然后她写了这句心情也许是我想太多,也许 2020-04-08 …
下列对比实验不是以探究燃烧条件为目的的是A.图1比较白磷、红磷的燃烧情况B.图2比较A、B两处红磷 2020-05-02 …
溶液的配制误差怎么解决加蒸馏水时不慎超过了刻度线(溶液中已经有了配置的溶质)怎么办向容量瓶中转移溶 2020-05-13 …
根据提供的两种情景,运用所给词语,分别扩展成40~50字的一段话,构成和谐的画面。情景一:冬阳暖照 2020-05-13 …
一天,中学生小吴在上学的路上看到两名陌生男子,鬼鬼祟祟在某武警军营外拍照并打听有关营房的情况。小吴 2020-05-13 …
造成细胞死亡的原因有哪些收到细胞后,但是发现培养液变混浊了,镜下观察完全没有细胞的形态,而且都成悬 2020-05-13 …
绘制本市一年内月平均气温的变化情况,应该选用折线统计图,因为折线统计图能清楚地反映出数据的变化情况 2020-05-14 …
我不是真正的快乐~~~~前男友是个情场高手,给我了太多的激情和刻骨铭心的回忆~~我知道一切都过去了 2020-05-14 …
古诗中的.十分钟.急就急急如:古诗中的.离情别绪春夏秋冬风花雪月山水风光名胜古迹思乡爱国豪言壮志亲 2020-05-17 …