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) 同一个问题可以有多种解决。

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    谷歌脸书第三方登录
    初步了解Owin
    select2去掉搜索框
    angularjs教程——自定义指令
    angularjs教程——Dom操作相关指令详解
    http://172.21.87.57:8081/seeyon/
    nce 1,a puma at large
    股池
    永清环保
    出门需要带的东西
  • 原文地址:https://www.cnblogs.com/free-1122/p/9884909.html
Copyright © 2011-2022 走看看