跳至主要內容

01-Answer1

AI悦创原创2023年1月27日1v1Python 1v1python数据结构与算法一对一辅导1v1Python 1v1python数据结构与算法一对一辅导大约 24 分钟...约 7071 字

对应题目:https://bornforthis.cn/1v1/20-Frank/

算法复杂度分析
  1. 计算操作次数
def function(seq):
    d = 0 # 定义参数d的初始类型为int ,初始数据为0
    n = len(seq) # 定义参数 n 的初始类型为 int,数据为 传入参数seq的长度
    for i in range(n - 1): #进行循环,第一层循环条件为 0 到 n - 1 的遍历
        for j in range(i+1, n): # 第二层循环条件为 i+1 到 n 的遍历
            d += seq[i] * seq[j] 
			# 嵌套循环条件下可确定 i,j用来定位数据,
			# d每次将进行 n-1 次内层循环后, 结束内层循环进入外层循环,i值增加,seq[i]数据重新定位
    return d
image-20230126205726656
image-20230126205726656
  • 第一层 for 循环执行 n-1 次。

  • 第二层 for 循环执行 n 次。

  • for 循环内部执行的计算是: d+= seq[i]*seq[j] 该行代码为常数计算。

因此该代码的操作次数为:(n - 1) * n

  1. 大 O 证明
  • T(n)=n410n2+50T(n) = n^4-10n^2+50

  • 当 n 增大时,n4n^4 项将开始占据主导地位,其他项可以忽略。

  • 当 n = 1000 时。 n4n^4 项 远大于 n2n^2 项,因此在大部分情况下,可省略 n2n^2 项对表达式的值的影响。

Update

公众号:AI悦创【二维码】

AI悦创·编程一对一

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Web、Linux」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh

C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh

方法一:QQ

方法二:微信:Jiabcdefh

你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度
通知
关于编程私教&加密文章