• 求程序段中++x或者x++的频度,时间复杂度、执行次数


    1. 以下程序段中"++x"的执行频度?

       频度就是执行次数
       for  i:=1 	to	n	then;
       	for	j:=1	to	n	then;
       			++x;
       i=1时	内圈for执行n次
       ...
       i=n时	内圈执行n次
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7

      我的理解:外圈for从1到n,有效循环是n次,外圈每循环一次,内圈循环n次,一共就是n方次

    2. 以下程序段中"++x"的执行频度?

       for  i:=1 	to	n	then;
       	for	j:=1	to	i	then;
       		for	k:=1	to	j	then
       			++x;
      
      • 1
      • 2
      • 3
      • 4

      我的理解:直接上暴力列举,假设n=8

       	以下都是有效循环次数,不包含for最后不满足条件循环一次
       	i=1时	中间循环 1次	内圈for循环1次
       	i=2时	中间循环 2次	内圈for循环1+2次
       	i=3时	中间循环 3次	内圈for循环1+2+3次
       	i=4时	中间循环 4次	内圈for循环1+2+3+4次
       	规律出来了
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      我详细说,i=3时,j从1到3,j可以为1,2,3,你可以不看中间for循环了几次,你只看j可以为哪几个值,分别j为1,2,3三种情况时内圈for是怎么在搞。当j为1时,k从1到1,循环一次,j为2时,k从1到2,循环两次,j为3时,k从1到3,循环了3次。所以i=3时,++x执行了1+2+3=6次,这只是一种情况

      i=n时,中间for从1到n,循环n次,这个n次表示内圈有n个数相加,
      因为中间for循环一次内圈就产生一个数,中间for循环了n次,内圈就产生n个数,这个n个数有规律的相加,就是从1+2+3+4+5+6+…&

  • 相关阅读:
    CMIP6数据处理及在气候变化、水文、生态等领域中的实践技术应用
    Rust 流程控制
    平地惊雷,GPT-4o 凌晨震撼发布
    Kotlin入门
    JavaScript学习笔记03
    数据分析-Pandas数据探查初步柱状图
    【学习笔记】HQL
    分析几道关于死锁的真题
    sklearnex 让你的 sklearn 机器学习模型训练快得飞起?
    操作系统内存管理-01分段
  • 原文地址:https://blog.csdn.net/weixin_46063117/article/details/127941443