1.算法的计算量————复杂性
2.算法的时间复杂度取决于————问题的规模或待处理的数据初态
3.算法————解决问题步骤的序列或解决问题步骤的描述
4.算法的五个特性————出入确可穷
至少1个输出
0个或者多个输入
确定性:每行代码的意思没有歧义
可行性:每个代码是可以执行的
步骤有穷性
5.时间复杂度最坏——估计算法执行的时间上界
6.相同规模的n,O(n)总是优于O(n^2)
7.同一个算法,实现的语言级别越高,执行效率就越低
8.算法原地工作需要辅助空间
9.数据结构按逻辑分类————线性和非线性
10.数据结构在计算机中的表示————存储结构
11.数据的存储结构分为————顺序存储和链式存储
12.循环队列,有两个指针,f指向头,r指向尾巴,进入队列,f+1,出队r+1。队列空是f=r,队满是(r+1)%Maxsize=f
13.顺序表,插入元素平均移动N/2个元素,删除一个元素平均移动(n-1)/2个元素,查找一个元素平均移动(n+1)/2个元素
14.哈希表:题目给你许多数字。和一个散列函数,通过让每一个数字与散列函数取余,余就是下标,在通过各种散列冲突解决办法,把每个数字放到数组中去。
15.栈:后进先出,一端受限的线性表。
顺序栈:一组地址连续的存储单元,top指针指向栈顶。top初始值为-1。进栈先判断栈是否满,top==Maxsize-1;不满,top+1,A[top]=x ;出栈先判断栈是否为空,top=-1;不为空,先取出值,e=A[top],top-1;
共享栈:两个顺序栈共用一个一维数组,A的栈底在数组的头,B的栈底在数组尾巴,栈长Maxsize,A为空时top=-1,B为空时top=Maxsize。,两个数组向中间靠拢,A的top+1=B的top时,栈满。A栈进栈,top+1,A[top]=x,B栈进栈,top-1,B[top]=y;A出栈,top-1,B出栈是top+1;存取元素的时间复杂度都是O(1);
15.栈的链式存储,不存在栈满,除非内存不足。且所有操作都是在单链表的表头操作。
16.线性结构:元素之间的关系一一对应,除了头尾元素,其他元素首位相连。例如,栈,队,数组,字符串。
17.非线性结构:图,树,二维数组。稀疏矩阵也是二位数组。
-
X:=X++执行的次数
FOR i:=1 TO n DO FOR j:=1 TO n DO X:=X++ i=1时 j执行了n次 2........n次 3........n次 n........n次 结果就是n^2次
-
求最后一句的频度
FOR i:=n-1 TO 1 DO FOR j:=1 TO i DO IF A[J]>A[J+1] A[J]=A[J+1] 假设n=9 外圈i 内圈 8 8次 7 7次 6 6次 5 5次 4 4次 3 3次 2 2次 1 1次 实际上就是1+2+3+4+....n-1次 [n(n+1)/2]-1 取最高项n^2
20.顺序表,哈希表,单链表他们描述了元素之间的逻辑结构,和存储结构,有序表只描述了逻辑结构。
21.