【数据结构实战C++】1 数据结构初探

【数据结构实战C++】1 数据结构初探

作者 CodeAllen ,转载请注明出处


为什么会有各种各样的程序存在?
程序本质的意义是什么?

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

在这里插入图片描述
如何判断问题求解步骤的好坏?

判断求解步骤的好坏

/*
    问题:给定一个整数 n,编程求解 1 + 2 + 3 + ... + n 的和。
*/
#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;
}

/*
sum1(100) = 5050
sum2(100) = 5050
sum3(100) = 5050
*/

理解程序好坏的标准

  • 用尽量少的时间解决问题
  • 用尽量少的步骤解决问题
  • 用尽量少内内存解决问题

数据结构的起源
1968年,高纳德教授开创
同年,计算机学科的学位课程中出现(必修)

数据结构课程的研究范围

  • 非数值计算类型的程序问题
  • 数据间的组织和操作问题
  • 数据的逻辑结构和存储问题

一个经典的公式(语言不重要,重要的是思想)
程序 = 数据结构 + 算法

小结
程序是为了解决实际问题而存在的
针对同一个问题可以用多种解决方案
专业程序员应该尽量追求高质量的程序
数据结构课程主要研究非数值计算问题

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章