一 时间复杂度
大O阶的推导方法:
1. 用1取代加法常数
2. 保留最高阶项
3.去除最高阶项的系数
常用的时间复杂度所耗费的时间从小到大:
O(1) < O(logn) < O(n) < O(nlogn) < O(n²) < O(n³) < O(2^n) < O(n!) < O(n^n)
二 线性表顺序存储结构
定义: 指用一段地址连续的存储单元一次存储线性表的数据元素
#define MAXSIZE 20
typedef int ElemType;
typedef struct {
ElemType data[MAXSIZE];
int length;
}SqList;在任意时刻,线性表的长度小于等于数组的长度
插入操作
//插入操作
int ListInsert(SqList L, int i, ElemType e)
{
int k = L.length - 1;
if (L.length == MAXSIZE) {
return ERROR;
}
//如果插入位置在表尾后一位则直接插入
if (i < 1 || i > L.length + 1) {
return ERROR;
}
if (i <= L.length) {
while (k!=i-2) {
L.data[k+1] = L.data[k];
--k;
}
}
L.data[i-1] = e;
L.length++;
return OK;
}删除操作
//删除操作
int ListDelete(SqList L, int i, ElemType *e)
{
int k;
if (L.length == 0) {
return ERROR;
}
if (i < 1 || i > L.length) {
return ERROR;
}
*e = L.data[i-1];
if (i < L.length) {
for (k = i; k < L.length; k++) {
L.data[k-1] = L.data[k];
}
}
L.length--;
return OK;
}该结构的存取动作时间复杂度为O(1), 插入删除动作的时间复杂度为O(n)
该结构的优缺点:
本文介绍了算法的时间复杂度大O阶的推导方法,并详细讲解了线性表的顺序存储结构,包括插入和删除操作及其优缺点。分析了不同操作的时间复杂度,如O(1), O(logn), O(n)等。"
117099561,10543072,C语言实现因式分解算法,"['C语言', '算法', '数学', '编程初学者']

被折叠的 条评论
为什么被折叠?



