理解程序的本质
问题:为什么会有各种各样的程序存在?程序的本质是什么?
- 程序是为了解决实际问题而存在的,从本质而言,程序是解决问题的步骤描述。
一小步的进阶:理解实际问题
-
确认问题类型
- 如:数值计算,求最小值个数
-
确认求解步骤
- 如:打开文件,读取文件,关闭文件,计算和
问题:如何判断问题求解步骤的好坏?
实例分析:判断求解步骤的好坏
#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;
}
程序评判初探
- 用尽量少的时间解决问题
- 用尽量少的步骤解决问题
- 用尽量少的内存解决问题
优秀的开发者追求高质量的代码
数据结构的历史起源
- 1968 年由高德纳教授(Donald E.Knuth)开创
- 同年,在计算机的学位课程中出现(必修)
主要成就
- ACM教授的图灵奖、软件系统将和霍泼奖
- 美国数学会授予Lester R.Ford奖、J.B.Priestley奖和Steele奖
- TEX排版软件和METAFONT字形设计软件
- 《计算机程序设计的艺术》等系列书籍
- 。。。
数据结构课程的研究范围
- 非数值计算类型的程序问题
- 数值间的组织和操作方式
- 数据的逻辑结构和存储结构
历史上的经典公式:程序= 数据结构 + 算法
对于数据结构和算法的研究,语言不重要,重要的是思想
小结
- 程序是为了解决实际问题而存在的
- 针对同一个问题可以由多种解决方案
- 专业程序员应该尽量追求高质量的程序
- 数据结构课程主要研究非数值计算问题
注:
经典公式在结构化程序设计时代提出。当今计算机已在解决实际生活中的问题,而这些问题往往非常复杂,经典公式已不能很好的处理,于是面向对象程序设计方法被提出。
但经典公式在本门课程中依旧可以遵循。
以上内容参考狄泰软件学院系列课程,请大家保护原创!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。