迭代算法分析

本文详细解析了一个用于查找数组中最大值的算法,通过具体代码示例,阐述了算法的基本操作步骤,包括数组访问、变量赋值和比较等,并分析了算法在不同情况下的基本操作数量,为理解算法复杂度提供了深入见解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <Windows.h>
using namespace std;

void main()
{
    int a[6] = { 99, 22, 33, 4, 55, 666 };
    int ac = a[0];//初始化变量对应2个基本操作:1.通过下表访问数组。2.给变量赋值。
    //算法只执行1次;2个基本操作;
    for (int i = 0; i < sizeof(a)/sizeof(a[0]); i++)
    {//再for循环的开始处将i初始化为0,这个动作对应执行一个基本操作;(给i赋值);
    //for循环的判断条件每次对应1个基本操作,所以这里基本操作记作size个单位
        //for循环的每次要执行i+1,每次迭代都会把a[i]与ac做比较(记作2个基本操作单位):1.通过下表访问数组。2.进行比较。
        //可能a[i]>ac就要再进行2个基本操作:1.通过下表访问数组。2.对变量进行赋值;
        //计数器i递增(2个基本操作)1.求和2赋值
        //总结每次循环要么4个基本操作要么6个基本操作取决与a[i]>ac
        //每次循环体执行基本操作数再4(n-1)---6(n-1)之间
        //返回ac的值又是一个基本操作
        //这个算法操作数至少为:2+1+n+4(n-1)+1=5n;
        //至多为:2+1+n+6(n-1)+1=7n-2

        if (a[i]>ac)
        {
            ac = a[i];
        }
    }
    cout << ac;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值