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

    时至今日,程序已经不仅仅是数据结构和算法了,我们需要使用面向对象的思维方式来解决很多现实生活地问题, 这样的问题可以不使用算法也不使用数据结构。但是,我们依旧需要学习这门课程,因为在我的专业中,这属于必修课程,一个不会算法的程序员,注定是可以轻易被替代的,况且,作为研究生,还有更高层次的数字信号处理方面的算法在等着我。

    看一个例子,展示程序设计者的功底:

    #include <iostream>
    
    using namespace std;
    
    long sum1(int n)
    {
        long ret = 0;
        int* array = new int[n];
    
        for(int i=0; i<n; i++)
        {
            array[i] = i + 1;
        }
    
        for(int i=0; i<n; i++)
        {
            ret += array[i];
        }
    
        delete[] array;
    
        return ret;
    }
    
    long sum2(int n)
    {
        long ret = 0;
    
        for(int 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()
    {
        cout << "sum1(100) = " << sum1(100) << endl;
        cout << "sum2(100) = " << sum2(100) << endl;
        cout << "sum3(100) = " << sum3(100) << endl;
    
        return 0;
    }

    我们明显可以知道,第三种采用高斯公式解决问题的程序员是功底最好的(上面的程序是一个好的引子,但是对于数组命名成array是个不好的地方,c++11中,array是std中自带的容器,命名成其他的更好)。这也体现了,数据结构真的是为了之后算法做铺垫的基础课程,算法有很多,但是离不开的是数学本源,数学知识的基础,决定了你能做到哪一个层次。

    不过很可惜,别说算法了,大多数人连基础语言的基本语法都不能随心所欲地驾驭,所以,还得花上大部分时间补习基础语法,这是一个慢慢累积的过程。

     

  • 相关阅读:
    git 还原某个文件~~~
    uniqid()
    array_filter 过滤一维中空数组,数组的序列不变
    加密 解密
    gitlab基本维护和使用
    vim 单文件中查找方法
    php数组定义
    $('.goods_tag_ids_all')[0].checked = true;//~~~~~ 单条改变checkbox 属性样式
    由买冰箱想到的
    2014年年终总结
  • 原文地址:https://www.cnblogs.com/yangguang-it/p/7144460.html
Copyright © 2011-2022 走看看