【數據結構實戰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年,高納德教授開創
同年,計算機學科的學位課程中出現(必修)
數據結構課程的研究範圍
- 非數值計算類型的程序問題
- 數據間的組織和操作問題
- 數據的邏輯結構和存儲問題
一個經典的公式(語言不重要,重要的是思想)
程序 = 數據結構 + 算法
小結
程序是爲了解決實際問題而存在的
針對同一個問題可以用多種解決方案
專業程序員應該儘量追求高質量的程序
數據結構課程主要研究非數值計算問題