|
|
|
# Project information
|
|
|
|
site_name: Hello 算法
|
|
|
|
site_url: https://www.hello-algo.com/
|
|
|
|
site_author: krahets
|
|
|
|
site_description: 动画图解、一键运行的数据结构与算法教程
|
|
|
|
docs_dir: build/docs
|
|
|
|
site_dir: site
|
|
|
|
# Repository
|
|
|
|
repo_name: krahets/hello-algo
|
|
|
|
repo_url: https://github.com/krahets/hello-algo
|
|
|
|
edit_uri: tree/main/docs
|
|
|
|
version: 1.0.0
|
|
|
|
|
|
|
|
# Copyright
|
|
|
|
copyright: Copyright © 2022-2024 krahets<br>The website content is licensed under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</a>
|
|
|
|
|
|
|
|
# Configuration
|
|
|
|
theme:
|
|
|
|
name: material
|
|
|
|
custom_dir: build/overrides
|
|
|
|
language: zh
|
|
|
|
features:
|
|
|
|
- announce.dismiss
|
|
|
|
- content.action.edit
|
|
|
|
# - content.action.view
|
|
|
|
- content.code.annotate
|
|
|
|
- content.code.copy
|
|
|
|
- content.tabs.link
|
|
|
|
- content.tooltips
|
|
|
|
# - header.autohide
|
|
|
|
# - navigation.expand
|
|
|
|
- navigation.indexes
|
|
|
|
# - navigation.instant
|
|
|
|
# - navigation.prune
|
|
|
|
# - navigation.sections
|
|
|
|
# - navigation.tabs
|
|
|
|
# - navigation.tabs.sticky
|
|
|
|
- navigation.top
|
|
|
|
- navigation.footer
|
|
|
|
- navigation.tracking
|
|
|
|
- search.highlight
|
|
|
|
- search.share
|
|
|
|
- search.suggest
|
|
|
|
- toc.follow
|
|
|
|
# - toc.integrate
|
|
|
|
palette:
|
|
|
|
- scheme: default
|
|
|
|
primary: white
|
|
|
|
accent: teal
|
|
|
|
toggle:
|
|
|
|
icon: material/theme-light-dark
|
|
|
|
name: 深色模式
|
|
|
|
- scheme: slate
|
|
|
|
primary: black
|
|
|
|
accent: teal
|
|
|
|
toggle:
|
|
|
|
icon: material/theme-light-dark
|
|
|
|
name: 浅色模式
|
|
|
|
font:
|
|
|
|
text: Noto Sans SC
|
|
|
|
code: Fira Code
|
|
|
|
favicon: assets/images/favicon.png
|
|
|
|
logo: assets/images/logo.svg
|
|
|
|
icon:
|
|
|
|
logo: logo
|
|
|
|
repo: fontawesome/brands/github
|
|
|
|
edit: fontawesome/regular/pen-to-square
|
|
|
|
|
|
|
|
extra:
|
|
|
|
alternate:
|
|
|
|
- name: 中文
|
|
|
|
link: /
|
|
|
|
lang: zh
|
|
|
|
- name: English
|
|
|
|
link: /en/
|
|
|
|
lang: en
|
|
|
|
social:
|
|
|
|
- icon: fontawesome/brands/github
|
|
|
|
link: https://github.com/krahets
|
|
|
|
- icon: fontawesome/brands/x-twitter
|
|
|
|
link: https://twitter.com/krahets
|
|
|
|
- icon: fontawesome/solid/code
|
|
|
|
link: https://leetcode.cn/u/jyd/
|
|
|
|
generator: false
|
|
|
|
status:
|
|
|
|
new: 最近添加
|
|
|
|
|
|
|
|
# Plugins
|
|
|
|
plugins:
|
|
|
|
- search
|
|
|
|
- glightbox:
|
|
|
|
touchNavigation: true
|
|
|
|
loop: false
|
|
|
|
effect: zoom
|
|
|
|
slide_effect: none
|
|
|
|
width: 100%
|
|
|
|
height: auto
|
|
|
|
zoomable: true
|
|
|
|
draggable: false
|
|
|
|
auto_caption: false
|
|
|
|
caption_position: bottom
|
|
|
|
|
|
|
|
# Extensions
|
|
|
|
markdown_extensions:
|
|
|
|
- abbr
|
|
|
|
- admonition
|
|
|
|
- attr_list
|
|
|
|
- def_list
|
|
|
|
- footnotes
|
|
|
|
- md_in_html
|
|
|
|
- toc:
|
|
|
|
permalink: true
|
|
|
|
- pymdownx.arithmatex:
|
|
|
|
generic: true
|
|
|
|
- pymdownx.betterem:
|
|
|
|
smart_enable: all
|
|
|
|
- pymdownx.caret
|
|
|
|
- pymdownx.details
|
|
|
|
# - pymdownx.emoji:
|
|
|
|
# emoji_index: !!python/name:materialx.emoji.twemoji
|
|
|
|
# emoji_generator: !!python/name:materialx.emoji.to_svg
|
|
|
|
- pymdownx.highlight:
|
|
|
|
anchor_linenums: true
|
|
|
|
- pymdownx.inlinehilite
|
|
|
|
- pymdownx.snippets
|
|
|
|
- pymdownx.superfences
|
|
|
|
- pymdownx.keys
|
|
|
|
# - pymdownx.magiclink:
|
|
|
|
# repo_url_shorthand: true
|
|
|
|
# user: squidfunk
|
|
|
|
# repo: mkdocs-material
|
|
|
|
- pymdownx.mark
|
|
|
|
- pymdownx.smartsymbols
|
|
|
|
- pymdownx.tabbed:
|
|
|
|
alternate_style: true
|
|
|
|
- pymdownx.tasklist:
|
|
|
|
custom_checkbox: true
|
|
|
|
- pymdownx.tilde
|
|
|
|
|
|
|
|
extra_javascript:
|
|
|
|
- javascripts/mathjax.js
|
|
|
|
- https://polyfill.io/v3/polyfill.min.js?features=es6
|
|
|
|
- https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
|
|
|
|
# - javascripts/katex.js
|
|
|
|
# - https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.7/katex.min.js
|
|
|
|
# - https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.7/contrib/auto-render.min.js
|
|
|
|
|
|
|
|
extra_css:
|
|
|
|
- stylesheets/extra.css
|
|
|
|
# - https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.7/katex.min.css
|
|
|
|
|
|
|
|
# Page tree
|
|
|
|
nav:
|
|
|
|
- 序:
|
|
|
|
- chapter_hello_algo/index.md
|
|
|
|
- 第 0 章 前言:
|
|
|
|
# [icon: material/book-open-outline]
|
|
|
|
- chapter_preface/index.md
|
|
|
|
- 0.1 关于本书: chapter_preface/about_the_book.md
|
|
|
|
- 0.2 如何使用本书: chapter_preface/suggestions.md
|
|
|
|
- 0.3 小结: chapter_preface/summary.md
|
|
|
|
- 第 1 章 初识算法:
|
|
|
|
# [icon: material/calculator-variant-outline]
|
|
|
|
- chapter_introduction/index.md
|
|
|
|
- 1.1 算法无处不在: chapter_introduction/algorithms_are_everywhere.md
|
|
|
|
- 1.2 算法是什么: chapter_introduction/what_is_dsa.md
|
|
|
|
- 1.3 小结: chapter_introduction/summary.md
|
|
|
|
- 第 2 章 复杂度分析:
|
|
|
|
# [icon: material/timer-sand]
|
|
|
|
- chapter_computational_complexity/index.md
|
|
|
|
- 2.1 算法效率评估: chapter_computational_complexity/performance_evaluation.md
|
|
|
|
- 2.2 迭代与递归: chapter_computational_complexity/iteration_and_recursion.md
|
|
|
|
- 2.3 时间复杂度: chapter_computational_complexity/time_complexity.md
|
|
|
|
- 2.4 空间复杂度: chapter_computational_complexity/space_complexity.md
|
|
|
|
- 2.5 小结: chapter_computational_complexity/summary.md
|
|
|
|
- 第 3 章 数据结构:
|
|
|
|
# [icon: material/shape-outline]
|
|
|
|
- chapter_data_structure/index.md
|
|
|
|
- 3.1 数据结构分类: chapter_data_structure/classification_of_data_structure.md
|
|
|
|
- 3.2 基本数据类型: chapter_data_structure/basic_data_types.md
|
|
|
|
- 3.3 数字编码 *: chapter_data_structure/number_encoding.md
|
|
|
|
- 3.4 字符编码 *: chapter_data_structure/character_encoding.md
|
|
|
|
- 3.5 小结: chapter_data_structure/summary.md
|
|
|
|
- 第 4 章 数组与链表:
|
|
|
|
# [icon: material/view-list-outline]
|
|
|
|
- chapter_array_and_linkedlist/index.md
|
|
|
|
- 4.1 数组: chapter_array_and_linkedlist/array.md
|
|
|
|
- 4.2 链表: chapter_array_and_linkedlist/linked_list.md
|
|
|
|
- 4.3 列表: chapter_array_and_linkedlist/list.md
|
|
|
|
# [status: new]
|
|
|
|
- 4.4 内存与缓存 *: chapter_array_and_linkedlist/ram_and_cache.md
|
|
|
|
- 4.5 小结: chapter_array_and_linkedlist/summary.md
|
|
|
|
- 第 5 章 栈与队列:
|
|
|
|
# [icon: material/stack-overflow]
|
|
|
|
- chapter_stack_and_queue/index.md
|
|
|
|
- 5.1 栈: chapter_stack_and_queue/stack.md
|
|
|
|
- 5.2 队列: chapter_stack_and_queue/queue.md
|
|
|
|
- 5.3 双向队列: chapter_stack_and_queue/deque.md
|
|
|
|
- 5.4 小结: chapter_stack_and_queue/summary.md
|
|
|
|
- 第 6 章 哈希表:
|
|
|
|
# [icon: material/table-search]
|
|
|
|
- chapter_hashing/index.md
|
|
|
|
- 6.1 哈希表: chapter_hashing/hash_map.md
|
|
|
|
- 6.2 哈希冲突: chapter_hashing/hash_collision.md
|
|
|
|
- 6.3 哈希算法: chapter_hashing/hash_algorithm.md
|
|
|
|
- 6.4 小结: chapter_hashing/summary.md
|
|
|
|
- 第 7 章 树:
|
|
|
|
# [icon: material/graph-outline]
|
|
|
|
- chapter_tree/index.md
|
|
|
|
- 7.1 二叉树: chapter_tree/binary_tree.md
|
|
|
|
- 7.2 二叉树遍历: chapter_tree/binary_tree_traversal.md
|
|
|
|
- 7.3 二叉树数组表示: chapter_tree/array_representation_of_tree.md
|
|
|
|
- 7.4 二叉搜索树: chapter_tree/binary_search_tree.md
|
|
|
|
- 7.5 AVL 树 *: chapter_tree/avl_tree.md
|
|
|
|
- 7.6 小结: chapter_tree/summary.md
|
|
|
|
- 第 8 章 堆:
|
|
|
|
# [icon: material/family-tree]
|
|
|
|
- chapter_heap/index.md
|
|
|
|
- 8.1 堆: chapter_heap/heap.md
|
|
|
|
- 8.2 建堆操作: chapter_heap/build_heap.md
|
|
|
|
- 8.3 Top-k 问题: chapter_heap/top_k.md
|
|
|
|
- 8.4 小结: chapter_heap/summary.md
|
|
|
|
- 第 9 章 图:
|
|
|
|
# [icon: material/graphql]
|
|
|
|
- chapter_graph/index.md
|
|
|
|
- 9.1 图: chapter_graph/graph.md
|
|
|
|
- 9.2 图基础操作: chapter_graph/graph_operations.md
|
|
|
|
- 9.3 图的遍历: chapter_graph/graph_traversal.md
|
|
|
|
- 9.4 小结: chapter_graph/summary.md
|
|
|
|
- 第 10 章 搜索:
|
|
|
|
# [icon: material/text-search]
|
|
|
|
- chapter_searching/index.md
|
|
|
|
- 10.1 二分查找: chapter_searching/binary_search.md
|
|
|
|
- 10.2 二分查找插入点: chapter_searching/binary_search_insertion.md
|
|
|
|
- 10.3 二分查找边界: chapter_searching/binary_search_edge.md
|
|
|
|
- 10.4 哈希优化策略: chapter_searching/replace_linear_by_hashing.md
|
|
|
|
- 10.5 重识搜索算法: chapter_searching/searching_algorithm_revisited.md
|
|
|
|
- 10.6 小结: chapter_searching/summary.md
|
|
|
|
- 第 11 章 排序:
|
|
|
|
# [icon: material/sort-ascending]
|
|
|
|
- chapter_sorting/index.md
|
|
|
|
- 11.1 排序算法: chapter_sorting/sorting_algorithm.md
|
|
|
|
- 11.2 选择排序: chapter_sorting/selection_sort.md
|
|
|
|
- 11.3 冒泡排序: chapter_sorting/bubble_sort.md
|
|
|
|
- 11.4 插入排序: chapter_sorting/insertion_sort.md
|
|
|
|
- 11.5 快速排序: chapter_sorting/quick_sort.md
|
|
|
|
- 11.6 归并排序: chapter_sorting/merge_sort.md
|
|
|
|
- 11.7 堆排序: chapter_sorting/heap_sort.md
|
|
|
|
- 11.8 桶排序: chapter_sorting/bucket_sort.md
|
|
|
|
- 11.9 计数排序: chapter_sorting/counting_sort.md
|
|
|
|
- 11.10 基数排序: chapter_sorting/radix_sort.md
|
|
|
|
- 11.11 小结: chapter_sorting/summary.md
|
|
|
|
- 第 12 章 分治:
|
|
|
|
# [icon: material/set-split]
|
|
|
|
- chapter_divide_and_conquer/index.md
|
|
|
|
- 12.1 分治算法: chapter_divide_and_conquer/divide_and_conquer.md
|
|
|
|
- 12.2 分治搜索策略: chapter_divide_and_conquer/binary_search_recur.md
|
|
|
|
- 12.3 构建树问题: chapter_divide_and_conquer/build_binary_tree_problem.md
|
|
|
|
- 12.4 汉诺塔问题: chapter_divide_and_conquer/hanota_problem.md
|
|
|
|
- 12.5 小结: chapter_divide_and_conquer/summary.md
|
|
|
|
- 第 13 章 回溯:
|
|
|
|
# [icon: material/map-marker-path]
|
|
|
|
- chapter_backtracking/index.md
|
|
|
|
- 13.1 回溯算法: chapter_backtracking/backtracking_algorithm.md
|
|
|
|
- 13.2 全排列问题: chapter_backtracking/permutations_problem.md
|
|
|
|
- 13.3 子集和问题: chapter_backtracking/subset_sum_problem.md
|
|
|
|
- 13.4 N 皇后问题: chapter_backtracking/n_queens_problem.md
|
|
|
|
- 13.5 小结: chapter_backtracking/summary.md
|
|
|
|
- 第 14 章 动态规划:
|
|
|
|
# [icon: material/table-pivot]
|
|
|
|
- chapter_dynamic_programming/index.md
|
|
|
|
- 14.1 初探动态规划: chapter_dynamic_programming/intro_to_dynamic_programming.md
|
|
|
|
- 14.2 DP 问题特性: chapter_dynamic_programming/dp_problem_features.md
|
|
|
|
- 14.3 DP 解题思路: chapter_dynamic_programming/dp_solution_pipeline.md
|
|
|
|
- 14.4 0-1 背包问题: chapter_dynamic_programming/knapsack_problem.md
|
|
|
|
- 14.5 完全背包问题: chapter_dynamic_programming/unbounded_knapsack_problem.md
|
|
|
|
- 14.6 编辑距离问题: chapter_dynamic_programming/edit_distance_problem.md
|
|
|
|
- 14.7 小结: chapter_dynamic_programming/summary.md
|
|
|
|
- 第 15 章 贪心:
|
|
|
|
# [icon: material/head-heart-outline]
|
|
|
|
- chapter_greedy/index.md
|
|
|
|
- 15.1 贪心算法: chapter_greedy/greedy_algorithm.md
|
|
|
|
- 15.2 分数背包问题: chapter_greedy/fractional_knapsack_problem.md
|
|
|
|
- 15.3 最大容量问题: chapter_greedy/max_capacity_problem.md
|
|
|
|
- 15.4 最大切分乘积问题: chapter_greedy/max_product_cutting_problem.md
|
|
|
|
- 15.5 小结: chapter_greedy/summary.md
|
|
|
|
- 第 16 章 附录:
|
|
|
|
# [icon: material/help-circle-outline]
|
|
|
|
- chapter_appendix/index.md
|
|
|
|
- 16.1 编程环境安装: chapter_appendix/installation.md
|
|
|
|
- 16.2 一起参与创作: chapter_appendix/contribution.md
|
|
|
|
- 16.3 术语表: chapter_appendix/terminology.md
|
|
|
|
- 参考文献:
|
|
|
|
- chapter_reference/index.md
|
|
|
|
- 纸质书:
|
|
|
|
- chapter_paperbook/index.md
|