数据结构与算法是计算机科学的核心基石,它决定了程序的执行效率(速度)和资源消耗(内存)。简单来说,数据结构是数据的存储方式,而算法是解决问题的具体步骤。



graph TD
     数据结构板块
    Root --> DS[数据结构: 数据的存储方式]
    
    DS --> DS_Linear[线性结构]
    DS_Linear --> Array[数组 Array: 连续内存/随机访问]
    DS_Linear --> List[链表 Linked List: 指针连接/动态扩容]
    DS_Linear --> Stack[栈 Stack: 后进先出 LIFO]
    DS_Linear --> Queue[队列 Queue: 先进先出 FIFO]
    
    DS --> DS_Tree[树形结构]
    DS_Tree --> BinTree[二叉树 Binary Tree: 基础树状模型]
    DS_Tree --> BST[二叉搜索树: 左小右大/便于查找]
    DS_Tree --> Heap[堆 Heap: 大顶堆/小顶堆/优先队列]
    
    DS --> DS_Graph[图形结构]
    DS_Graph --> AM[邻接矩阵: 二维数组存储]
    DS_Graph --> AL[邻接表: 链表数组存储]
    
    DS --> DS_Hash[哈希结构]
    DS_Hash --> HashTable[散列表 Hash Table: Key-Value映射/O_1查询]

     样式调整
    style Root fill:#4A90E2,stroke:#333,stroke-width:2px,color:#fff
    style DS fill:#50E3C2,stroke:#333,stroke-width:1px
    style Alg fill:#F5A623,stroke:#333,stroke-width:1px

1. 核心组成部分

为了系统地学习,可以将其分为两大板块:

基础数据结构

  • 线性结构:数组(Array)、链表(Linked List)、栈(Stack)、队列(Queue)。
  • 树形结构:二叉树(Binary Tree)、二叉搜索树(BST)、平衡树(AVL/红黑树)、堆(Heap)。
  • 图形结构:图(Graph,包括邻接矩阵和邻接表)。
  • 哈希结构:散列表(Hash Table)。

核心算法思想

  • 搜索与遍历:二分查找(Binary Search)、深度优先搜索(DFS)、广度优先搜索(BFS)。
  • 排序算法:冒泡、插入、选择、快速排序(Quick Sort)、归并排序(Merge Sort)、堆排序。
  • 高级算法策略:分治法(Divide and Conquer)、贪心算法(Greedy)、动态规划(Dynamic Programming, DP)、回溯法(Backtracking)。

2. 核心评估标准:复杂度分析

评估一个算法的好坏,不看绝对的运行时间,而是看运行趋势,即大O表示法(Big O Notation):

复杂度种类符号表示典型场景性能评价
常数阶O(1)数组通过下标直接访问元素极快
对数阶$O(\log n)$二分查找、二叉搜索树查找非常快
线性阶O(n)遍历一次链表或数组表现良好
线性对数阶$O(n \log n)$快速排序、归并排序的平均时间高效排序的标准
平方阶O(n²)冒泡排序、双重循环遍历较慢,数据量大时慎用

相关