算法与数据结构(一)
来源:互联网 发布:淘宝详情页图片加热点 编辑:程序博客网 时间:2024/05/17 09:15
一 时间复杂度
大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 20typedef 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)
该结构的优缺点:
- 算法与数据结构(一)
- 数据结构与算法一
- 数据结构与算法一
- 数据结构与算法(一)
- 数据结构与算法笔记一
- 数据结构与算法感想一
- 【数据结构与算法】一 数组
- 数据结构与算法(一) 交换
- 数据结构与算法学习一
- 数据结构与算法-排序(一)
- 数据结构与算法笔记一
- 数据结构与算法(一)
- 数据结构与算法(一)
- 数据结构与算法(一)
- 数据结构与算法(一)
- 数据结构与算法一:算法复杂度分析
- 一、数据结构 读书笔记(一)基本概念与算法
- 数据结构与算法总论(一)
- Ubuntu 10.04安装中文输入法
- C#基础继承和多态详解 1
- 深入浅出Mybatis-插件原理
- Androidpn 消息推送总结
- 现代LaTeX系统中文排版方案渣指南
- 算法与数据结构(一)
- 常量
- Java环境下Memcached应用详解
- 虚拟化平台cloudstack(3)——安装(下)
- Viewstate知识点复习
- NYOJ21 三个水杯
- Android处理网页的短信链接
- ref 最好的转址赚钱
- windows 下重新安装android sdk eclipse 等等