数据结构、算法种类
数据结构:数组,链表,栈,队列,二叉树,
算法:动态规划、分治、递归、排序:冒泡、快排
复杂度:log:以 2 为底
递归联想到复杂度:O(log n)
算法
算法的种类:
递推法
递归法
穷举法
贪心算法:当前情况,不考虑各种可能的整体
分治法:快排,对左边和右边采取不同的递归方法
动态规划法:硬币兑换
回溯法 :图论的深度查询
数据结构
数据结构:1.该数据结构是如何实现的;2.用来干嘛;
数据结构汇总:
数组
堆栈
队列
链表
树
图
字典树(Tries,这是一种高效的树,有必要单独列出来)
哈希表
线性表:
线性表包括顺序表和链表,二者的不同是存储单元是否连续。顺序表是用数组实现的。
堆:
是用数组实现的完全的二叉树。没有父指针和子指针分为最大堆和最小堆。最大堆是父节点总是大的。
没有指针,索引为i的节点的父节点和子节点的关系:
parent(i) = floor((i - 1)/2)
left(i) = 2i + 1
right(i) = 2i + 2
如果一个堆有 n 个节点,那么它的高度是 h = floor(log2(n))。
floor(log2(15)) = floor(3.91) = 3