先知悉以下术语概念
以一个学生管理系统为例说明上述概念对应的具体项
数据 --学生信息管理系统中存储的所有关于学生的信息构成了数据;
数据元素 --每一个学生的全部信息就是一个数据元素,例如:
学号:2020001
姓名:张三
性别:男
年龄:20
专业:计算机科学与技术
入学年份:2020
联系电话:13812345678
邮箱:zhangsan@example.com
数据项 --在上面的数据元素中,
每个数据项分别描述了学生的某个具体属性
数据对象 --所有性别相同的学生构成一个数据对象,也可以时所有年龄或者专业相同的学生也可以构成一个数据对象
数据结构按照逻辑结构分为以下几类
数据结构按存储结构分为以下几类
算法是对特定问题求解步骤的一种描述,他的指令是有序序列,一条指令代表一个多多个操作,算法具有以下5个特性
从算法中选取一种基本操作,以该基本操作的重复执行的次数作为算法的时间度量
例如,在一个N X N的矩阵相乘的算法中,"乘法"运算是"矩阵相乘问题"的基本操作,整个算法的执行时间与该基本操作的重复次数n3成正比,记作T(n)=O(n3)
#include<stdio.h>
int main() {
int a[3][3] = {
{1,1,1},
{1,1,1},
{1,1,1}
};
int b[3][3] = {
{1,1,1},
{1,1,1},
{1,1,1}
};
int i, j, k;
int c[3][3];
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
c[i][j] = 0;
for (k = 0; k < 3; k++) {
c[i][j] += a[i][k] * b[k][j];
}
printf("%d ", c[i][j]);
}
printf("\n ");
}
return 0;
}
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法时间度量计做T(n)=O(f(n)),他表示随着问题规模n的增长,算法执行时间增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称时间复杂度
以空间复杂多作为算法所需存储空间的度量,记作S(n) = O(f(n)) 其中n为问题规模,程序除了需要存储空间来寄存本身所用指令、常数、变量和输入数据外,也需要一些对数据进行操作的工作单元和存储一些为实现计算所需的辅助存储空间。