• 第一课——进阶高手的大门


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

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

    #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中自带的容器,命名成其他的更好)。这也体现了,数据结构真的是为了之后算法做铺垫的基础课程,算法有很多,但是离不开的是数学本源,数学知识的基础,决定了你能做到哪一个层次。

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

     

  • 相关阅读:
    IE CSS Bug及解决方案参考手册
    如何学习Javascript
    JS获取当前对象大小以及屏幕分辨率等
    自适应网页设计的方法
    【Javascript Trick系列】二、table相关操作
    移动web开发经验总结
    兼容各种浏览器的常用按钮样式
    获取浏览器的高度和宽度
    让页面弹框垂直水平居中
    Vue is used in projects
  • 原文地址:https://www.cnblogs.com/yangguang-it/p/7144460.html
Copyright © 2020-2023  润新知