Mindket

The Algorithms Python 算法合集

新上架第 2 版 · 更新于
星标226k

概览

TheAlgorithms 的开源算法与数据结构合集,每一项都用 Python 写成,供学习使用。安装说明涵盖在 GitHub 或文档站点上阅读、克隆或 ZIP、运行文件的 doctest、开发容器,以及让 Claude Code、Codex 或 Cursor 当辅导老师。

The Algorithms Python 算法合集 是一款 GitHub 上的开源项目,属于教育类,由 Mindket 上架。可免费获取。当前为第 2 版,最近更新于 。按它的 README 从 GitHub 安装。Mindket 的设置说明可在你的 Mindket 账户获取,以 zip 压缩包下载。

速览

用在
  • GitHub:README、各个文件夹,以及带文档字符串的每个文件
  • 文档站点:https://thealgorithms.github.io/Python/,用 Sphinx 从仓库构建
  • 克隆或 ZIP:在编辑器里打开文件夹,运行文件的 doctest
  • Visual Studio Code 里的开发容器:仓库自带安装配置
先运行
git clone https://github.com/TheAlgorithms/Python.git
cd Python

平台

Claude Code编程智能体
Codex编程智能体
Cursor代码编辑器

关于

它是什么

The Algorithms Python(算法合集)是一个公开的算法和数据结构合集,每一项都是一个你可以直接阅读的 Python 文件。README 称它是“All algorithms implemented in Python”,并说它是为了教育。文件按主题放在各个文件夹里,比如 sorts、searches、graphs、dynamic_programming、ciphers 和 maths。文件由贡献者编写,CONTRIBUTING.md 要求有类型提示、文档字符串和 doctest,所以大多数文件都带着可以运行的例子。README 提醒,这些实现“may be less efficient than the implementations in the Python standard library”,意思是可能比 Python 标准库里的实现效率低。

  1. 在 DIRECTORY.md 或文档站点上找到一个主题
  2. 打开文件,先读它的文档字符串
  3. 在你自己的副本上运行它的 doctest
  4. 改动代码,再运行一遍

适合谁

最适合靠读能运行的代码来学算法的人:学生、自学的开发者,以及准备面试的人。README 说这些代码是用来学习的,GitHub 为这个仓库列的话题里有 education、interview 和 practice。它也适合想提交第一个开源拉取请求的人,因为 CONTRIBUTING.md 欢迎新的实现和更好的 doctest。

谁在用,怎么用
谁怎么用例子
学生对照课程读一个文件,并运行它的 doctest一位在学排序的学生打开 sorts/bubble_sort_recursive.py,运行它的 doctest,看每次调用返回什么。
自学的开发者先写自己的版本,再对照有人先写一个最大公约数函数,再对照 maths/greatest_common_divisor.py 里的各种情形检查,比如负数和零。
面试备考的人读经典题目的文件,再凭记忆重写一位考生读 searches/binary_search.py,合上文件,再把函数写一遍。
老师给学员指一个文件夹或一个文件,对应一个主题一位老师把 ciphers 文件夹交给全班,让每个学生讲解一个文件。
第一次贡献的人通过拉取请求修一个 doctest 或加一个算法一位新手改进某个文件的 doctest,这个拉取请求不改别的东西。

如果你要在生产环境里导入一个库,就别用它。README 说这些实现只用于学习,并写着“Use them at your discretion.”,意思是请自行斟酌使用。

用在哪里

只要能打开网页就能阅读,只要是能运行足够新的 Python(pyproject.toml 要求 3.15 或更新)的地方就能运行文件。

  • GitHub:README、各个文件夹,以及带文档字符串的每个文件
  • 文档站点:https://thealgorithms.github.io/Python/,用 Sphinx 从仓库构建
  • 克隆或 ZIP:在编辑器里打开文件夹,运行文件的 doctest
  • Visual Studio Code 里的开发容器:仓库自带安装配置
  • Gitpod:README 有一个 Ready-to-Code 徽章,不过 Mindket 没有打开过
  • 聊天:README 链接了一个 Discord 服务器,CONTRIBUTING.md 链接了一个 Gitter 房间

仓库里有一个 AGENTS.md 和三个智能体技能文件,是写给提交或审查拉取请求、分拣问题的人的。Mindket 的说明演示怎样让 Claude Code、Codex 或 Cursor 当辅导老师来读这个仓库,并标明哪些步骤是 Mindket 加的。

如何设置

点“获取”会把一个装有 Mindket 安装说明的 zip 压缩包存进你的下载文件夹。阅读代码不需要安装。要运行文件,你需要 Python 和自己的一份仓库副本。

先准备好这些
需要说明
什么都不用在 GitHub 或文档站点上阅读代码
Python3.15 或更新:pyproject.toml 写的是 requires-python = ">=3.15",CONTRIBUTING.md 要求用支持自由线程的 3.15t+,.python-version 里是 3.15t。在 Mindket 的测试运行里,两个文件在 3.14 下通过,其中一个在 3.12 下因 SyntaxError 失败
Git 或 ZIP克隆,或在 GitHub 上点 Code 再点 Download ZIP(Mindket 的说明:这是普通的 GitHub 用法,README 里没有),就能拿到文件
软件包只有部分文件会导入它们。pyproject.toml 列了 numpy、pandas、scikit-learn、httpx2 等
uv可选。维护者的命令用的是 uv 和 uvx
  1. 读仓库页面上的 README。地址是 https://github.com/TheAlgorithms/Python 。或者点 Code,再点 Download ZIP,然后解压(Mindket 的说明:这是普通的 GitHub 用法,README 里没有)。
  2. 或者用下面的第一段命令克隆它。
  3. 用编辑器打开文件夹,从 DIRECTORY.md 里挑一个文件。
  4. 用第二段命令运行它的 doctest,换成这个文件的路径。
git clone https://github.com/TheAlgorithms/Python.git
cd Python

下一条命令来自 CONTRIBUTING.md。把 my_submission.py 换成文件的路径,比如 sorts/bubble_sort_recursive.py。

python3 -m doctest -v my_submission.py

如何使用

从 DIRECTORY.md 开始,它按文件夹列出每个 Python 文件,打开其中一个。先读文档字符串。CONTRIBUTING.md 说,它应当解释代码,或者链接 Wikipedia 这样的来源,doctest 则应同时覆盖有效和错误的输入。所以 doctest 读起来就是一份输入清单,以及每个输入必须给出的答案。运行它们。然后改动代码再运行一遍,看看哪里会坏。

直接运行一个文件之前,先读它的结尾。maths/greatest_common_divisor.py 会要你输入两个整数,web_programming/current_stock_price.py 会请求 Yahoo Finance 的页面。

下面的分组是 Mindket 做的,文件夹名是仓库自己的。

按主题分的文件夹
主题文件夹
数据与搜索data_structures, sorts, searches, hashes, strings
解题方法backtracking, divide_and_conquer, dynamic_programming, greedy_methods, knapsack, graphs, networking_flow
数学与科学maths, matrix, linear_algebra, linear_programming, geometry, physics, quantum, fractals, geodesy, electronics, bit_manipulation, boolean_algebra, conversions
数据与信号machine_learning, neural_network, genetic_algorithm, fuzzy_logic, audio_filters, computer_vision, digital_image_processing, data_compression, graphics, cellular_automata
其他ciphers, blockchain, file_transfer, scheduling, web_programming, financial, project_euler, other

用智能体的话,指明文件,让它做解释或检查,而不是重写。

Open sorts/bubble_sort_recursive.py and explain in plain words what each doctest checks. Do not change any file.

示例

你从 DIRECTORY.md 的 Sorts 列表里打开 sorts/bubble_sort_recursive.py。文件开头是“A pure Python implementation of the recursive bubble sort algorithm.”,意思是:递归冒泡排序算法的纯 Python 实现。函数带一个类型参数,def bubble_sort_recursive[T: Comparable](arr: list[T]) -> list[T]:,它的文档字符串里有这样的 doctest:

>>> bubble_sort_recursive([5, 1, 4, 2, 8])
[1, 2, 4, 5, 8]
>>> bubble_sort_recursive([1, "two"])  # doctest: +ELLIPSIS
Traceback (most recent call last):
...
TypeError: ...

第二个例子是这个文件对错误输入的规定:把数字和字符串混在一起,必须抛出 TypeError。你用上面的命令运行 doctest。在 Mindket 2026 年 11 月 3 日的测试运行里,把这个文件和另一个文件从仓库复制到一个空文件夹后,它们在 Python 3.14 和 3.12 下都通过了。然后你改动函数里的比较,再运行一遍,看哪些例子会失败。

新手与专家

新手:算法是针对一项任务的固定方法,比如把一个列表排好序,或者在里面找一项。数据结构是保存数据的一种方式,比如链表或树。doctest 是写在函数文档字符串里的例子:以 >>> 开头的一行是一次调用,它下面一行是这次调用必须返回的结果。Python 的 doctest 模块会运行这些例子,并报告结果不一致的那些。你需要会安装 Python,并在终端里输入命令。先从一个你知道名字的文件夹开始,比如 sorts,打开里面的第一个文件。

专家:这个仓库跟进最新的 CPython 及其自由线程版本。.python-version 里是 3.15t,pyproject.toml 要求 3.15 或更新,build.yml 用 pytest-run-parallel 和 --ignore-gil-enabled 运行 pytest。它的注释说,有些编译型依赖还没有提供让 GIL 保持关闭的那个槽位,所以导入它们会在 3.15t 下重新启用 GIL。

构建工作流的 pytest 会跳过四个导入 cv2 的文件、digital_image_processing 文件夹、project_euler、docs/conf.py、scripts/validate_solutions.py 和两个网络文件。pre-commit 运行 ruff、codespell、文件名检查、检查 Markdown 的 rumdl 和 uv-lock 等。ty 作为信息性检查运行,目前不会阻止合并。

DIRECTORY.md 由 scripts/build_directory_md.py 在构建通过后的最后一步重新生成。Project Euler 的答案由 scripts/validate_solutions.py 检查,不靠 doctest,该文件夹的 README 说最慢的十个解答会显示在 Actions 日志里。scripts 文件夹里还有一些 shell 脚本,用来关闭缺少测试、类型提示或描述性名称的拉取请求,它的 README 把这些脚本和十月的 Hacktoberfest 高峰联系在一起。

注意事项

这些代码是用来学习的。在基于它构建之前,先读一遍文件。

  • 许可证:MIT。LICENSE.md 以“MIT License”开头,并把“TheAlgorithms and contributors”列为版权方。project_euler/README.md 说它的题目来自 projecteuler.net,并且“are licensed under CC BY-NC-SA 4.0”。复用题目文字之前,先去看那个网站
  • 较新的 Python:在 Mindket 的测试运行里,maths/greatest_common_divisor.py 在 Python 3.12 上因为 SyntaxError 停了下来,在 3.14 上通过。原因是一行没有加括号的 except
  • 过时的安装文件:.gitpod.yml 和 .devcontainer/Dockerfile 仍然提到 requirements.txt,而 AGENTS.md 说这个项目没有它。2026 年 11 月 3 日,GitHub 对它的原始地址回复 404。开发容器的配置指定的是一个镜像,不是那个 Dockerfile
  • CI 里被跳过的:AGENTS.md 说有些目录是有意跳过的(build.yml 里的 --ignore 条目),通常是因为某个很重的依赖缺少对应的 wheel。看那份清单就知道某个文件有没有被测试
  • 网络:有几个文件会抓取网页,比如 web_programming/current_stock_price.py。开发容器会从 GitHub 克隆两个 zsh 插件
  • 提交改动:每个拉取请求只改一个算法文件,描述里至少勾选一个方框,否则 algorithms-keeper 机器人会把它关掉。漏洞要私下报告给维护者,SECURITY.md 就是这么说的
  • 对外连接:阅读时会加载 GitHub,README 里来自 raw.githubusercontent.com 的标志和来自 img.shields.io 的徽章。git clone 和 git pull 会和 GitHub 通信
  • 移除:删掉文件夹,如果留着下载的 ZIP 文件,也一并删掉

README 和文件

README

The Algorithms Python:安装说明

这个工具包里只有安装说明,由 Mindket 编写。代码本身留在 TheAlgorithms/Python 仓库里:https://github.com/TheAlgorithms/Python

这些说明不是 TheAlgorithms 写的,也没有得到他们的认可。这个仓库在 GitHub 上的描述是“All Algorithms implemented in Python”,意思是:用 Python 实现的所有算法。README 在标题下的话是“All algorithms implemented in Python - for education”,意思是:用 Python 实现的所有算法,用于教育。它的第一段写着“Implementations are for learning purposes only. They may be less efficient than the implementations in the Python standard library. Use them at your discretion.”,意思是:这些实现只用于学习,可能比 Python 标准库里的实现效率低,请自行斟酌使用。这些说明依据的是 README、CONTRIBUTING.md、AGENTS.md、SECURITY.md、LICENSE.md、pyproject.toml、.python-version 文件、开发容器文件、四个 GitHub Actions 工作流(build、ruff、sphinx 和 ty)、三个智能体技能文件和文档站点的首页,都是在 2026 年 11 月 3 日读到的。对仓库里两个文件做的一次测试运行,见 setup/run-a-file.md。

许可证:MIT。GitHub 对这个仓库的信息写的是“MIT License”(SPDX 编号 MIT),LICENSE.md 以“MIT License”和“Copyright (c) 2016-2022 TheAlgorithms and contributors”开头。project_euler/ 文件夹的 README 补充说,它的题目来自 https://projecteuler.net/,并且“are licensed under CC BY-NC-SA 4.0”,所以这个文件夹里的题目文字还有第二个许可证。这些说明只引用仓库里的短句(其中有两行代码),并写明每一句出自哪个页面,不包含任何完整的文件。

它是什么

这是一个公开的算法和数据结构合集,每一项都是一个你可以直接阅读的 Python 文件,按主题放在各个文件夹里。README 称这个项目是“All algorithms implemented in Python”,并说它是为了教育。文件由贡献者编写。CONTRIBUTING.md 要求有类型提示、文档字符串和 doctest,所以大多数文件都带着可以运行的例子。来源见 https://github.com/TheAlgorithms/Python/blob/master/README.md

仓库的文件夹,按 DIRECTORY.md 目录在 2026 年 11 月 3 日列出的名字:Audio Filters, Backtracking, Bit Manipulation, Blockchain, Boolean Algebra, Cellular Automata, Ciphers, Computer Vision, Conversions, Data Compression, Data Structures, Digital Image Processing, Divide And Conquer, Docs, Dynamic Programming, Electronics, File Transfer, Financial, Fractals, Fuzzy Logic, Genetic Algorithm, Geodesy, Geometry, Graphics, Graphs, Greedy Methods, Hashes, Knapsack, Linear Algebra, Linear Programming, Machine Learning, Maths, Matrix, Networking Flow, Neural Network, Other, Physics, Project Euler, Quantum, Scheduling, Searches, Sorts, Strings, Tests 和 Web Programming。这份清单会随着文件夹的增加而变化。来源见 https://github.com/TheAlgorithms/Python/blob/master/DIRECTORY.md

除了算法文件夹,仓库里还有:

  • DIRECTORY.md:按文件夹列出每个 Python 文件,由构建重新生成
  • CONTRIBUTING.md、AGENTS.md、SECURITY.md、LICENSE.md 和 index.md
  • pyproject.toml、uv.lock 和 .python-version:Python 版本和软件包
  • .devcontainer/、.gitpod.yml 和 .pre-commit-config.yaml:维护者为开发容器、Gitpod 和 pre-commit 做的配置
  • .github/:工作流、拉取请求模板,以及 .github/skills/ 下的三个智能体技能文件
  • docs/ 和 scripts/:Sphinx 配置,以及维护者的维护脚本

来源见仓库的文件树(https://api.github.com/repos/TheAlgorithms/Python/git/trees/master?recursive=1)。

会安装什么

这个工具包不装任何东西。仓库就是源码文件。要运行其中一个,你需要 Python,有些文件夹还需要第三方软件包。见 setup/run-a-file.md。

先准备好这些

  • 阅读代码:一个浏览器。见 setup/read-online.md。
  • 拿到一份副本:Git,或者下载 ZIP。见 setup/get-a-copy.md。
  • 运行文件里的例子:Python 3.15 或更新(pyproject.toml 写的是 requires-python = ">=3.15"),有些文件在 3.12 下会失败。见 setup/run-a-file.md。
  • 使用维护者的开发容器:Docker 和 Visual Studio Code。见 setup/dev-container-and-gitpod.md。

各平台的说明

  • setup/read-online.md:GitHub、DIRECTORY.md 和文档站点
  • setup/get-a-copy.md:ZIP,或者克隆
  • setup/run-a-file.md:Python 版本、软件包、维护者的测试命令和一次测试运行
  • setup/dev-container-and-gitpod.md:维护者 .devcontainer/README.md 里的开发容器步骤,以及 Gitpod 徽章
  • setup/ai-agents.md:仓库的 AGENTS.md 和智能体技能文件,以及让 Claude Code、Codex 或 Cursor 当辅导老师(Mindket 的步骤)
  • setup/contribute-a-change.md:维护者对拉取请求的规则

更新或移除

ZIP 只是一个快照:想拿到后来的改动,就再下载一个。克隆用 git pull 更新(Mindket 的说明,普通的 Git 用法)。要移除任何一种,删掉文件夹就行,如果留着下载的 ZIP 文件,也一并删掉。

对外连接

  • 在 GitHub 上阅读会加载 GitHub。README 的标志来自 raw.githubusercontent.com,徽章来自 img.shields.io。
  • 文档站点在 GitHub Pages 上,地址是 https://thealgorithms.github.io/Python/。
  • git clone 和 git pull 会和 GitHub 通信。
  • 你运行的文件可能自己访问网络。例如 web_programming/current_stock_price.py 会请求 Yahoo Finance 的页面。
  • 开发容器会从 mcr.microsoft.com 拉取一个镜像,并从 GitHub 克隆两个 zsh 插件。见 setup/dev-container-and-gitpod.md。

来源

  • README:https://github.com/TheAlgorithms/Python/blob/master/README.md
  • CONTRIBUTING:https://github.com/TheAlgorithms/Python/blob/master/CONTRIBUTING.md
  • AGENTS:https://github.com/TheAlgorithms/Python/blob/master/AGENTS.md
  • LICENSE:https://github.com/TheAlgorithms/Python/blob/master/LICENSE.md
  • DIRECTORY:https://github.com/TheAlgorithms/Python/blob/master/DIRECTORY.md
  • pyproject.toml:https://github.com/TheAlgorithms/Python/blob/master/pyproject.toml
  • Project Euler README:https://github.com/TheAlgorithms/Python/blob/master/project_euler/README.md
  • GitHub 对仓库的信息:https://api.github.com/repos/TheAlgorithms/Python
文件
README.md  6 KB
setup/ai-agents.md  4 KB
setup/contribute-a-change.md  4 KB
setup/dev-container-and-gitpod.md  4 KB
setup/get-a-copy.md  1 KB
setup/read-online.md  4 KB
setup/run-a-file.md  6 KB

7 个文件,共 28 KB,以 zip 压缩包下载。

更新内容

  • 第 2 版 · 2026-11-09

    Updated by Mindket to the current version of this kit.

  • 第 1 版 · 2026-11-03

同类产品对比

同一分类里与本产品共有主题最多的已上架 GitHub 项目。

产品星标活跃度语言许可证最近更新
The Algorithms Python 算法合集 本页225,927——MIT—
Free Programming Books 免费编程书单共有 hacktoberfest · education401,147——CC-BY-4.0—
System Design Primer 系统设计入门共有 interview · python377,360更新较少Python—
Coding Interview University 面试计划共有 algorithm · interview364,052——CC-BY-SA-4.0—
Hello Algo《Hello 算法》共有 algorithm · education131,980————
数据为 Mindket 在 2026-11-07 至 2026-11-09 期间读取的数值。 活跃度依据各项目在 GitHub 上的最近更新:30 天内为活跃,180 天内为更新较少,超过 180 天为久未更新。

评价

还没有评分

写评价

还没有评价。

大家怎么说

Hacker News、Bluesky、X、Reddit、Facebook 和 YouTube 上提到这个项目的帖子和评论,来自每周一次的搜索和 Trendshift。它们不是 Mindket 写的,也未经核实,点开即可在原帖处阅读。

0101111101Algorithms Implemented in Python153 分 · 27 条回复Andrii Kuznietsov👨💻🐍The Algorithms / #Python — великий відкритий репозиторій на GitHub, у якому зібрані реалізації алгоритмів і структур даних мовою Python. Проєкт охоплює десятки напрямів, від базового сортування та пошуку до криптографії, машинного навчання й нейронних мереж. github.com/TheAlgorithm...@ZabihullahAtal2. 100 Days of ML Coding → Daily ML practice roadmap → Build consistency while learning Link: https://t.co/BKBao1Nlphr/letscodecommunity10 GitHub repositories to master Python 👇algowizardAlgorithms Implemented in Python6 分RepoTendency🔥 "python" is trending on GitHub 1 Jul 2026 — 10 repos (⭐32.0K avg, ⭐222.3K max) 🥇 react/react ⭐246.2K 🍴51.1K forks 📈 TypeScript 16.6% · 👤 TheAlgorithms (9 repos, ⭐374.4K total) 📊 319 repos · 33 keywords · 247 unique authors 🌐 https://github-tendency.vercel.app — full report #GitHub…@_jaydeepkarale3️A curated list with Github stars and forks stats based on awesome awesome-python https://t.co/wJZQDXg3o5r/letscodecommunity10 GitHub repositories every developer should know for DSAtaubekAll Algorithms Implemented in Python5 分GitRatedA new AI review! TheAlgorithms/Python ⭐3.9/5.0 TheAlgorithms/Python is a large, actively maintained, community-driven collection of educational algorithm and data-structure implementations. https://gitrated.com/TheAlgorithms/Python@techNmakSomeone quietly built a computer science degree inside a GitHub repository. Sorting. Graphs. Dynamic programming. Data structures. Cryptography. Machine learning. All implemented in Python. Then you see the folders: maths sorts graphs hashes matrix ciphers geodesy physics quantum strings fractals…fzliuAll Algorithms Implemented in Python3 分

搜索日期

Mindket 的更多商品

查看 Mindket 的全部商品

Bonsai-27B-GGUF

lmstudio-community · 工具包

面向 LM Studio 的 27B Bonsai 模型 GGUF 转换版,含 3.80 GB 的 Q1_0 语言文件和 0.93 GB 的 BF16 视觉投影器。已测试文本、视觉和并行工具调用。

新上架

以每权重 2.9 位的 EXL3 量化运行 DeepSeek-V4.1-Flash-1017,这是一份 196 GiB 的副本,适合在自己硬件上部署大模型的人。困惑度与原模型相差不大。

新上架

MusicGen Small

facebook · 工具包

根据文字描述或音频提示生成短音乐片段,是 facebook MusicGen 的 small 检查点。适合想在自己电脑上试用文字生成音乐的开发者和音乐爱好者。

新上架

Free Programming Books 免费编程书单

EbookFoundation · 工具包

社区维护的免费编程书籍、课程、速查表、交互式教程、播客和在线练习场清单,覆盖多种语言,由 Free Ebook Foundation 管理。安装说明涵盖怎么阅读和检索它、让 Claude Code、Codex 或 Cursor 帮你查,以及维护者的检查。

新上架401k

Donne Martin 整理的一套资源,教你设计大规模系统并准备系统设计面试,附带解答示例和 Anki 闪卡。安装说明涵盖阅读方式、本地副本、闪卡包,以及让 Claude Code、Codex 或 Cursor 当学习搭档。

新上架377k

jwasham 的数月学习计划,目标是成为软件工程师,写成一份很长的 README,里面有视频、讲座和要你自己实现的东西。安装说明涵盖 ZIP、用 Git 复刻、找到自己学到哪一节、选语言,以及让 Claude Code、Codex 或 Cursor 当你的辅导老师。

新上架364k