zoukankan      html  css  js  c++  java
  • 第一课——进阶高手的大门

    理解程序的本质
    程序是为了实际的问题而存在
    从本质上而言,程序是解决问题的步骤描述

    一小步的进阶
    首先理解实际问题!
     确认问题类型
    如:数值计算,求最小值个数
     确认求解的步骤
    如:打开文件,读数据,关闭文件,计算和
    问题:
    如何判断求解步骤的好坏

    通过下面的例子说明:

    #include <stdio.h>
    #include <malloc.h>
    
    long sum1(int n)
    {
        long ret = 0;
        int* array = (int*)malloc(n * sizeof(int));
        int i = 0;
        
        for(i=0; i<n; i++)
        {
            array[i] = i + 1;
        }
        
        for(i=0; i<n; i++)
        {
            ret += array[i];
        }
        
        free(array);
        
        return ret;
    }
    
    long sum2(int n)
    {
        long ret = 0;
        int i = 0;
        
        for(i=1; i<=n; i++)
        {
            ret += i;
        }
        
        return ret;
    }
    
    long sum3(int n)
    {
        long ret = 0;
        
        if( n > 0 )
        {
            ret = (1 + n) * n / 2;
        }
        
        return ret;
    }
    
    int main(void)
    {
        printf("%ld
    ", sum1(100));
        printf("%ld
    ", sum2(100));
        printf("%ld
    ", sum3(100));
        
        return 0;
    }

    三个函数输出相同,可是很明显,第三个高斯公式完成地最简单,至少目前给我们的直观感受是这样的,而第一个最没有必要,第二个属于大众型的。

     小结

    程序是为了具体问题而存在的
    程序需要围绕问题的解决进行设计
    同一个问题可以有多种解决方案
    如何追求程序的性价比
    是否有可量化的方法判别程序的好坏?

  • 相关阅读:
    学习日记(2.19 BP神经网络完整代码解读)
    学习日记(2.18)
    学习日记2.17
    学习日记(2.15---2.16)
    最后的作业
    C++第五次作业
    第四次作业:结对编程
    C++第四次作业
    第三次作业:原型设计
    conda基本操作
  • 原文地址:https://www.cnblogs.com/yangguang-it/p/7140620.html
Copyright © 2011-2022 走看看