数据结构与算法(七):常见数据结构与算法概括

本文概述了常用的数据结构,包括线性结构如数组、链表、栈、队列等,以及树形结构如二叉树、堆等。同时介绍了常见的算法,如排序算法、图算法和字符串算法,并讨论了算法的基础思想。

常用数据结构

  1. 线性结构:
    • 字符串、数组(固定vs动态,有序 vs无序)、链表(单向链表、双向链表);
    • 栈、队列(普通队列、优先队列)、双端队列、块状数组(链表+数组);(注意,栈,队列或用数组或用链表实现)
    • 哈希表(数组或者链表实现)、关联容器(字典或者映射,主要还是哈希)、并查集、集合(散乱无序,交并差等操作)

  1. 树形结构:
    • 堆(大顶堆、小顶堆(数组+树))
    • 字典查找树(trie树)、二叉树(平衡vs不平衡、完全vs不完全)、二叉排序树、二叉查找树、红黑树、B+/B-树、哈夫曼树
  2. 其他:倒排索引、邻接表、邻接矩阵、位图(位操作)、最小生成树


常见算法

  1. 排序算法:归并排序、快速排序、基数(桶)排序、堆排序,这四种最为重要,其次冒泡、选择、插入、希尔排序次之;
    排序
  2. 图算法:深度优先搜索(dfs)、广度优先搜索(bfs)、最短路径、最小生成树、拓扑排序等等。
  3. 字符串算法:字符串查找与匹配、正则表达式等
  4. 算法基础思想:枚举,递归,分治,贪心,动态规划,剪枝,回溯(剪枝和回溯主要用于图搜索方面)
  5. 数学方面:素数(最大公约数、最小公倍数)、排列、组合

未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值