【數據結構實戰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年,高納德教授開創
同年,計算機學科的學位課程中出現(必修)

數據結構課程的研究範圍

  • 非數值計算類型的程序問題
  • 數據間的組織和操作問題
  • 數據的邏輯結構和存儲問題

一個經典的公式(語言不重要,重要的是思想)
程序 = 數據結構 + 算法

小結
程序是爲了解決實際問題而存在的
針對同一個問題可以用多種解決方案
專業程序員應該儘量追求高質量的程序
數據結構課程主要研究非數值計算問題

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