时间复杂度
o( )
eg:
遍历输出1-1000
循环一次输出,O(n)
循环两次,O(n^2)
二分查找:O(log n)
1s可以处理10^7
O(n),n=10^7
O(n^2)n,
数据结构的基本概念
基本的数据结构
线性结构
线性表
栈和队列
串
数组和广义表
非线性结构
树
图
基本的数据处理技术
排序技术
查找技术
栈、队列、链表
队列
先进先出
队列将是我们今后学习广度优先搜索以及队列优化的 Bellman-Ford 最短路算法的核心 数据结构。
通常将其放在 main 函数的外面
基本元素
一个数组
两个变量
struct queue //struct 是结构体的关键字,queue 是我们为这个结构体起的名字
{
int data [100];//队列的主体,用来储存内容
int head;//队首
int tail;//队尾
};//分号!!!
定义变量
struct queue q;
栈
后进先出
栈的实现 也很简单,只需要一个一维数组和一个指向栈顶的变量 top 就可以了。我们通过 top 来对栈 进行插入和删除操作。
struct stack
{
int data[10];
int top;
};
排序
简单的桶排序
优点:快速,O(N+M)
缺点:只能排整数
浪费空间
冒泡排序
缺点:费时,O(N2)
超级超级慢
快速排序
优点:比较快,O(NlogN)