zoukankan      html  css  js  c++  java
  • [C语言] 数据结构-算法效率的度量方法-事前分析估算方法

    事前分析估算方法:在计算机程序编制前,依据统计方法对算法进行估算,抛开与计算机硬件软件有关的因素,一个程序的运行时间,依赖于算法的,好坏和问题的输入规模,所谓问题输入规模是指输入量的多少

    推导过程,比如计算1+2+3+...100

    int i,sum=0,n=100 //执行1

    for(i=1;i<=n;i++) //执行n+1

    {

        sum=sum+i;    //执行n

    }

    去掉头尾循环判断,执行了n

    第二种算法:

    int sum=0,n=100  //执行1

    sum=(1+n)*n/2;   //执行1

    去掉头尾循环判断,执行了1

    延伸一下:

    int i,x,j,sum=0,n=100 //执行1

    for(i=1;i<=n;i++) //执行n+1

    {

        for(j=1;i<=n;j++){

            x++;

            sum=sum+x;  //执行n*n

        }

    }

    循环部分的代码整体需要执行n^2

    因此当问题输入规模是n时,f(n)作为一个函数操作数量分别为

    f(n)=n

    f(n)=1

    f(n)=n^2

    由于函数的渐进增长,n的值越大,差异也就越大,因此我们在判断一个算法时

    一般都忽略掉常数项,忽略掉次要项,只关注最高次项,关注最高阶项的阶数

  • 相关阅读:
    关于垂直居中
    linux 前后台程序切换
    mac 下jetbrains IDE系列IDE主题
    mac 安装命令行开发者工具
    python 安装MySQLdb mysql_config not fount
    error: command 'cc' failed with exit status 1
    sqllite 入门
    jieba分词
    zookeeper 故障重连机制
    深入学习 celery
  • 原文地址:https://www.cnblogs.com/taoshihan/p/8413328.html
Copyright © 2011-2022 走看看