早教吧作业答案频道 -->其他-->
冒泡排序时间复杂度冒泡排序在最坏的情况下的比较次数是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)。
打了那么多字应该解释的比较清楚了吧,什么地方看不明白再问吧
看了 冒泡排序时间复杂度冒泡排序在...的网友还看了以下:
求排列组合算法,不同数值组合成一米的算法,需求是这样的,有100个不同的产品,每个产品有不同的宽度, 2020-03-30 …
用一测量工具测得某物长度1.53x10的负二次方若用分度值是厘米的刻度尺测得:A0.0153mB0 2020-04-07 …
车床大托盘,小托盘同时走?已知大托盘走刀速度=小托盘走刀速度2倍,若大小托盘同时走刀,问:要车半角 2020-04-07 …
在氢核磁共振中信号强度来确定有机物分子中原子种类的强度1:3的是A1,2,3-三甲基苯B丙烷C异丙 2020-04-25 …
要配1升密度1.28的电解液,用多少硫酸浓度60%的.要多少纯水 2020-04-26 …
自由落体扔石头测山谷和湖泊的深度.扔石头测量深度,石头的自由落体速度是多少?扔到水里可测水深,在水 2020-05-13 …
201不锈钢管子重量怎么算?密度(g/cm3)——钢种 7.93——201,202,301,302 2020-05-17 …
有一动物尾巴长度是头的3倍躯干部分的长度只有尾长的一半现量的尾躯干共长4.5米问它的头有多长全长是 2020-05-20 …
25℃下密度1.80的浓硫酸的浓度是多少? 2020-05-23 …
设X服从正态分布,在方差已知时,总体均值的置信区间长度l与置信度1-a的关系是什么?是当1-a降时 2020-06-10 …