1,本文论述数据结构的起源和数据结构研究内容;
2,高手往往能够看到初学者看不到的问题;
3,为什么有程序存在:
1,程序是为了解决实际问题而存在的;
2,从本质上讲,程序是解决问题的步骤描述(有了这些步骤,计算机照做就可以了);
4,理解实际问题:
1,确认问题类型:
1,如:数值计算,求最小值个数,排序等;
2,客户想要什么?
2,确认求解步骤:
1,打开文件,读数据,关闭文件,计算和;
5,如何判断问题求解步骤好坏?
1,时间少、步骤少、内存少;
2,判断求解步骤的好坏:
1 #include <iostream> 2 3 using namespace std; 4 5 long sum1(int n) 6 { 7 long ret = 0; 8 int* array = new int[n]; 9 10 for(int i=0; i<n; i++) 11 { 12 array[i] = i + 1; 13 } 14 15 for(int i=0; i<n; i++) 16 { 17 ret += array[i]; 18 } 19 20 delete[] array; 21 22 return ret; 23 } 24 25 long sum2(int n) 26 { 27 long ret = 0; 28 29 for(int i=1; i<=n; i++) 30 { 31 ret += i; 32 } 33 34 return ret; 35 } 36 37 long sum3(int n) 38 { 39 long ret = 0; 40 41 if( n > 0 ) 42 { 43 ret = (1 + n) * n / 2; 44 } 45 46 return ret; 47 } 48 49 int main() 50 { 51 cout << "sum1(100) = " << sum1(100) << endl; 52 cout << "sum2(100) = " << sum2(100) << endl; 53 cout << "sum3(100) = " << sum3(100) << endl; 54 55 return 0; 56 }
6,程序评鉴初探:
1,用尽量少的时间,决绝问题;
2,用尽量少的步骤,解决问题;
3,用尽量少的内存,解决问题;
7,《数据结构》课程是入门级,《计算机程序设计艺术》是大神级的;
9,数据结构课程研究范围:
1,非数值计算类型的程序问题;
1,不研究科学问题;
2,数据间的组织和操作方式;
3,数据的逻辑结构和存储结构;
10,经典公式:
1,程序 = 数据结构 + 算法;(面向过程的设计思想时候成立)
2,目前这门课这个公式依旧成立;
11,语言重要,思想也重要;
数据结构和算法中语言不重要,重要的是思想;
12,小结:
1,程序是为了解决实际问题而存在的;
2,针对同一个问题可以有多种解决方案;
3,专业程序员应该尽量追求高质量的程序;
4,数据结构课程主要研究非数值计算问题;