算法常用语句
链表节点的定义
typedef struct Node
{
int data;
struct Node *next;
}Node;
制作一个结构体节点
BTNode *BT;
BT=(BTNode*)malloc(sizeof(BTNode));
动态申请 数组空间,p[0]即可访问第一个元素
int *p;
p=(int *)malloc(n *sizeof(int))
基本概念
- 概念和术语
数据,数据元素,数据项,数据对象
抽象数据类型ADT:定义了ADT就是定义了数据结构 - 三要素
逻辑结构
物理结构(存储结构)
数据的运算
算法与算法的评价
-
什么是算法?
程序=数据结构+算法 -
算法的五个特性:
有穷性
确定性
可行性
输入
输出 -
好的算法的要求
正确性
可读性
鲁棒性(健壮性)
高效率和低存储需求 -
效率的度量
- 时间复杂度:
如何计算:找到代码中的一个基本操作,分析操作的执行次数x和问题量级n的关系
- 空间复杂度:
递归程序空间复杂度=递归调用的深度
在本来的数据存储的空间之外申请的新的空间就是空间复杂度。
- 时间复杂度: