1.1定义抽象数据类型
用c语言实现复数抽象数据类型的定义
typedef struct{
float realpart; /*实部*/
float imagpart; /*虚部*/
}Complex; /*复数抽象类型*/
/*
函数类型 函数名(参数列表){
语句序列
}函数名
*/
PS:C语言单行注释//,多行注释/**/
1.2算法分析与时间复杂度
算法的特性:
有穷性,确定性,可行性,输入,输出
算法设计的要求:
正确性,可读性,健壮性,高效性
算法时间复杂度案例:
找到嵌套最深层次的语句
eg1
//n阶矩阵相乘
for(i=1;i<n;i++)
for (j = 1; j <= n; j++) {
c[i][j] = 0;
for (k = 1; k <= n; k++)
c[i][j] = c[i][j] + a[i][k] * b[k][j];
}
使用了三个for循环,
!当右边不与左下方自变量一样时,求和符号的上下部分代表有多少个右边的东西相加
!当右边与左下方自变量一样时,求和符号的上下部分代表自变量从1+到左上方的值
eg2
for (i = 1; i <= n; i++)
for (j = 1; j <= i; j++)
for (k = 1; j <= j; k++)
x = x + 1;
这样不方便计算,所以做了拆分,前半部分运用数列求和。
eg3
i = 1
while (i <= n)
i = i * 2;
循环执行1次,
循环执行2次,
循环执行3次,
循环执行x次,
由于条件,可以写成
算法时间复杂度由低到高:
1.3算法的空间复杂度
略