主要数据结构
几种常用的数据结构如下图所示:
1、栈(Stack):先进后出
数组:占据内存中一段连续的区域
2、队列(Queue):先进后出
链表:每一段子链表中指针指向下一位
优先队列:最特殊的元素放在最上面,如:大顶堆、小顶堆
3、集合(Set):判断一个元素是否存在,也可用数组实现,但时间复杂度较大
哈希集合:时间复杂度为O(1),较快
树集合:时间复杂度为O(log n),虽然较慢,但其中元素有序排列
4、图(Map):具有一一对应的关系,如Python中的字典
时间复杂度
O(1):如数组中任一元素的查找、修改
O(log n):如二分查找
O(n):如遍历一次
O(n log n):最快的排序算法
O(
n
2
n^2
n2)
O(
n
3
n^3
n3)
O(
2
n
2^n
2n):类似排列组合中的二项式
O(n!)