程序设计=数据结构+算法
1.逻辑结构和物理结构:
逻辑结构:
(1)集合结构
(2)线性结构
(3)树形结构
(4)图形结构
物理结构:
(1)顺序存储结构
(2)链式存储结构(关注前一个):数据元素存放在任意的存储单元里,这组存储单元可以是连续,也可以是不连续的
1+2+...+99+100 的结果
//效率低
int main()
{
int i, sum = 0, n = 100;
sum = (1 + n) * n / 2;
cout << "sum=" << sum << endl;
system("pause");
return 0;
}
//较好
int main()
{
int i, sum = 0, n = 100;
for (i = 1; i <= 100; i++)
{
sum = sum + i;
}
cout << "sum=" << sum << endl;
}
2.算法度量
算法效率的度量方法:
算法采用的策略,方案
编译产生的代码质量
问题的输入规模
基本操作的数量(输入规模)和输入模式来决定
判断一个算法的效率时 函数中的常数和其他次要项常常可以忽略,应该关注最高项的阶数
时间复杂度和空间复杂度
时间复杂度:
推理大O阶:
常见的时间复杂度:
空间复杂度: