第一章:绪论
1逻辑结构:.集合、线型、树型、图形结构(数据元素多对多)
2.物理结构:顺序储存结构(连续的储存单元,如数组)链式储存结构(不连续的储存单元,单线联系,如链表)
第二章:算法
算法具有的5个基本特性:输入、输出、有穷性、确定性(算法的每一步都具有确定含义)、可行性。
2.判断一个算法的效率时函数的常数和其他次要项常常可以忽略,而更应该专注最高阶项的阶数。
3.算法的时间复杂度:(1.)常数阶:假设运行次数函数是f(n)= 3,时间复杂度为O(1).
(2)线性阶:例如
int i;
for(i = 1; i <= n; i++)
循环体中代码需要执行n次,所以时间复杂度为O(n)。
(3)嵌套循环:
int i, j;
for(i = 0 ; i < n; i++)
{
for(j = i; j < n; j++)
{
......
}
}
执行次数为n+(n-1)+(n-2)...+1,共n^2+n/2次,根据大O阶方法,第一条,没有常数项不考虑;第二条只保留最高项n^2,第三条,去除zhe这个项相乘的常数,最终复杂度为O(n^2).
举例:
执行次数函数 阶
12 O(1)
2n+3 O(n)
3n^2+2n+1 O(n^2)
5log_2 n +20 O(logn)
2n+3nlog_2 n O(nlogn)