以下代码在最坏情况下的时间复杂度为( )。
for (k = n-1; k >= 1; --k) for (t = 1; t < k; ++t) if (A[t] > A[t+1]) swap(A[t],A[t+1]); //将A[t]和A[t+1]对换
A. O(n) B. O(nlogn) C. O(n³) D. O(n²)
【参考答案】D
解析 观察程...
用户登录可进行刷题及查看答案
解析 观察程序发现,语句 “A[j] 与 A[j + 1] 对换;” 执行频率较高,且该语句并不影响双重 for 循环判断语句,但会影响 if 的判断语句。当 A 数组的所有元素都逆序时,该语句一直执行,此时为最坏情况。该语句在最坏情况下的频度是 O(n²),选 D。
登录后提交答案
暂无评论,来抢沙发