zoukankan      html  css  js  c++  java
  • 数据-第1课-进阶高手的大门

    第1课-进阶高手的大门

     

    1. 理解程序的本质

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

    问题:

    怎样把大象放冰箱?

    (1)打开冰箱门 2把大象放进去 3关上冰箱门

    Elephan* e = getElep();

    int f = open(fridge);

    put(f, e);

    close(f

     

    1. 首先理解实际问题

    (1) 确认问题类型。

    如:数值计算,求最小值个数。

    (2) 确认求解的步骤。

    如:打开文件,读数据,关闭文件,计算和。

     

    我们看一个求前n项和的程序:

    #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()

    {

        printf("%d ", sum1(100));   //5050

        printf("%d ", sum2(100));   //5050

        printf("%d ", sum3(100));   //5050

        return 0;

    }

     

    1. 程序评鉴

    (1) 用尽量少的内存空间解决问题

    (2) 用尽量少的步骤解决

    优秀的开发者需要追求代码的高“性价比”!

     

    小结:

    (1) 程序是为了具体问题而存的。

    (2) 程序需要围绕问题的解决进行。

    (3) 同一个问题可以有多种解决。

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    vscode配置远程开发环境
    C++条件语句和循环语句
    C++整数相除、取模运算和自加
    C++基础数据类型
    C++定义常量、标识符命名、整型数据类型
    Android压力测试工具Monkey简介
    adb shell命令后出现error: device not found报错解决方案
    xadmin修改登录页面背景图
    windbg如何让.cmdtree自动执行?
    Rabbitmq入门到进阶看这篇就够了!
  • 原文地址:https://www.cnblogs.com/free-1122/p/9884909.html
Copyright © 2011-2022 走看看