数据结构和算法

数据结构、算法种类
数据结构:数组,链表,栈,队列,二叉树,
算法:动态规划、分治、递归、排序:冒泡、快排

复杂度: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值