00 初探算法和数据结构

May 27, 2025 / 老大 / 2阅读 / 0评论/ 分类: 数据结构和算法

学习路线

什么是算法

简单来说,算法就是解决问题的一系列方法。

在计算机领域,算法是一系列程序指令用于处理特定的运算和逻辑问题

算法分类:

  1. 基础算法

  • 搜索算法(深度优先搜索(DFS)、广度优先搜索(BFS)、二分搜索等)

  • 排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等)

  • 图算法(Dijkstra算法、Floyd算法、最小生成树算法等)

  • 动态规划算法(背包问题,最长公共子序列等)

  • 分治算法(快速排序、归并排序、大整数乘法等)

  • 贪心算法(霍夫曼编码)

  • 回溯算法(皇后问题,数独问题等)

  1. 专业领域算法

  • 服务于特定领域,如阿尔法狗战胜围棋冠军,背后就是人工智能算法。

衡量算法优劣的主要标准是时间复杂度空间复杂度

  • 时间复杂度:一个算法运行时间长短的量度,T(n)=O(f(n)).

  • 空间复杂度:一个算法在运行过程中临时占用存储空间大小的量度,S(n)=O(f(n)).

什么是数据结构

数据结构(data structure)是数据的组织、管理和存储格式,其使用目的是为了高效的访问和修改数据

常见的数据结构:

  1. 线性数据结构(数组、链表、以及从它们所衍生出来的栈、队列)

  2. 树结构(二叉树:红黑树、AVL树,非二叉树:一般文件系统所使用的B-树,关系型数据库使用的索引结构B+树,用于数据压缩的哈夫曼树)

  3. 图结构

  4. 复合数据结构(哈希表、跳表、线段树、哈希链表)

参考资料

[1] Hello 算法

[2] 算法导航


评论