首页
/ Hello 算法编程环境安装指南:配置 VS Code 与十余种语言的算法代码运行环境

Hello 算法编程环境安装指南:配置 VS Code 与十余种语言的算法代码运行环境

2026-09-06 12:05:31作者:裴麒琰

《Hello 算法》是一本动画图解、源代码可一键运行的数据结构与算法教程,仓库中收录了 Python、Java、C++、C、C#、Go、Swift、Rust、Ruby、Kotlin、JavaScript、TypeScript、Dart 等十余门语言的完整示例代码(位于 codes/ 目录)。本文基于本书附录 编程环境安装文档 编写,系统讲解如何安装 IDE 与各语言运行环境、如何验证环境可用、以及如何用 Docker 一键容器化,帮助读者从零搭建可运行全书算法示例的本地开发环境。

从官网下载并安装 VS Code

在 VS Code 扩展市场安装扩展包

一、安装 IDE:推荐开源轻量的 VS Code

文档推荐开源、轻量的 VS Code 作为本地集成开发环境(IDE)。从 VS Code 官网根据操作系统选择相应版本下载并安装即可。

VS Code 拥有强大的扩展包生态系统,支持大多数编程语言的运行和调试。以 Python 为例:在扩展市场(快捷键 Ctrl/Cmd + Shift + X)中搜索并安装 "Python Extension Pack" 扩展包之后,即可进行 Python 代码的语法高亮、补全与调试。这也是本书官方在线代码运行所依赖的工作方式——每种语言的示例文件都能被对应的语言扩展正确识别。

二、安装各语言环境

本章完整继承原文档的安装步骤,并结合仓库中各语言代码目录(codes/<语言>/)的结构补充版本要求与验证方式。各语言环境的最低版本约束均可从仓库的构建配置中得到印证。

Python 环境

  1. 下载并安装 Miniconda3,需要 Python 3.10 或更新版本。
  2. 在 VS Code 的插件市场中搜索 python,安装 Python Extension Pack。
  3. (可选)在命令行输入 pip install black,安装代码格式化工具。

仓库印证:文档站部署用的根 Dockerfile 基于 python:3.10.0-alpine 镜像,代码容器 codes/Dockerfile 中同样显式安装 python3.10 并通过 update-alternatives 将其注册为默认 python 命令,可见 3.10 是本书代码实际运行的基准版本。

C/C++ 环境

  1. Windows 系统需要安装 MinGW(需按官方教程将其加入 PATH);macOS 自带 Clang,无须安装。
  2. 在 VS Code 的插件市场中搜索 c++,安装 C/C++ Extension Pack。
  3. (可选)打开 Settings 页面,搜索 Clang_format_fallback Style 代码格式化选项,设置为 { BasedOnStyle: Microsoft, BreakBeforeBraces: Attach }

仓库印证:C 与 C++ 代码分别位于 codes/ccodes/cpp,均采用 CMake 构建。根 CMakeLists.txt 要求 CMake ≥ 3.10、CMAKE_C_STANDARD 为 C11,并通过 add_subdirectory 挂载 chapter_array_and_linkedlistchapter_sortingchapter_dynamic_programming 等全部 13 个章节子目录。

Java 环境

  1. 下载并安装 OpenJDK,版本需满足大于 JDK 9(Java 代码中使用了 List.ofvar 等新特性)。
  2. 在 VS Code 的插件市场中搜索 java,安装 Extension Pack for Java。

仓库印证:Java 示例位于 codes/java,按包名组织(如 bubble_sort.java 声明 package chapter_sorting;),每个章节目录对应一个包,这与 JDK 的目录-包名对应规则一致。

C# 环境

  1. 下载并安装 .NET 8.0(.NET SDK 8.0 及以上)。
  2. 在 VS Code 的插件市场中搜索 C# Dev Kit,安装 C# Dev Kit。
  3. 也可使用 Visual Studio 作为 IDE。

仓库印证hello-algo.csproj<TargetFramework>net8.0</TargetFramework> 明确了目标框架为 .NET 8.0,并引用了 NUnit 3.14.0 作为测试框架;<Nullable>enable</Nullable><ImplicitUsings>enable</ImplicitUsings> 说明代码启用了可空引用类型与隐式 using,这是 .NET 8 项目模板的默认选项。

Go 环境

  1. 下载并安装 Go 工具链(golang.org/dl 按操作系统安装)。
  2. 在 VS Code 的插件市场中搜索 go,安装 Go 扩展。
  3. 按快捷键 Ctrl + Shift + P 呼出命令栏,输入 go,选择 Go: Install/Update Tools,全部勾选并安装即可(安装 goplsdlv 等配套工具)。

仓库印证go.mod 声明 go 1.19 与模块名 github.com/krahets/hello-algo,即 Go 1.19 及以上版本可运行全部代码;Go 代码目录还包含各章节的 _test.go 单元测试文件(如 codes/go 下每章约 2 倍于源文件的测试文件)。

Swift 环境

  1. 下载并安装 Swift(swift.org/download 提供 macOS 与 Linux 版本)。
  2. 在 VS Code 的插件市场中搜索 swift,安装 Swift for Visual Studio Code。

仓库印证Package.swift 声明 swift-tools-version: 5.7,即为每个算法示例定义了独立的可执行 target(如 iterationbubble_sortedit_distance),并依赖 apple/swift-collections 包提供 HeapModule——这意味着首次构建会自动拉取外部依赖,需要网络可用。

JavaScript 环境

  1. 下载并安装 Node.js(含 npm)。
  2. (可选)在 VS Code 的插件市场中搜索 Prettier,安装代码格式化工具。

仓库印证:JavaScript 代码位于 codes/javascript,并提供 test_all.js 批量运行脚本——它基于 JSR 的 @std 标准库(expandGlob、颜色输出)遍历 chapter_*/*.js 逐个执行,脚本内还使用了 import ... from 'jsr:@std/...' 语法,可推断运行时需要较新的 Node.js 版本或 node --experimental-jsr 支持。

TypeScript 环境

  1. 同 JavaScript 环境:安装 Node.js。
  2. 安装 TypeScript Execute(tsx)运行器,用于直接执行 .ts 文件而无需先编译。
  3. 在 VS Code 的插件市场中搜索 typescript,安装 Pretty TypeScript Errors 扩展,美化类型报错信息。

仓库印证package.json 定义了 typescript ^5.9.3@types/node 作为开发依赖,scripts.check 使用 tsc 做类型检查;代码位于 codes/typescriptmodules/ 目录存放跨章节复用模块。

Dart 环境

  1. 下载并安装 Dart SDK(dart.dev/get-dart)。
  2. 在 VS Code 的插件市场中搜索 dart,安装 Dart 扩展。

仓库印证:Dart 代码位于 codes/dart,每个算法示例是独立的 .dart 文件,直接以 dart run <文件> 执行即可。

Rust 环境

  1. 下载并安装 Rust 工具链(通过 rustup 安装 rustccargo)。
  2. 在 VS Code 的插件市场中搜索 rust,安装 rust-analyzer 扩展。

仓库印证Cargo.toml 使用 edition 2021,依赖 rand 0.8.5,并把每个算法文件注册为独立的 [[bin]] 可执行目标,文件内直接标注了运行命令,例如:

cargo run --bin bubble_sort
cargo run --bin edit_distance
cargo run --bin n_queens

三、验证环境:运行示例代码

环境安装完成后,最直接的验证方式是从仓库 codes/ 目录中挑选对应语言的章节代码运行。各语言的运行方式汇总如下(命令均需在相应语言代码根目录下执行):

语言 代码目录 运行方式
Python codes/python python chapter_sorting/bubble_sort.py,或 python test_all.py 全量回归
Java codes/java javac chapter_sorting/bubble_sort.java && java chapter_sorting.bubble_sort
C / C++ codes/c / codes/cpp cmake -B build && cmake --build build 后运行可执行文件
C# codes/csharp dotnet run(整个解决方案作为单个 Exe 项目)
Go codes/go go run ./chapter_sorting/...go test ./... 跑单元测试
Rust codes/rust cargo run --bin <示例名>(bin 名见 Cargo.toml
Swift codes/swift swift run <target 名>(target 名见 Package.swift
JavaScript codes/javascript node chapter_sorting/bubble_sort.js,或 node test_all.js
TypeScript codes/typescript tsx chapter_sorting/bubble_sort.ts,类型检查用 npm run check
Kotlin / Dart / Ruby codes/kotlin / codes/dart / codes/ruby kotlinc/dart run/ruby <文件> 直接执行
Zig codes/zig zig run main.zig

其中三个语言的仓库自带"一键全量回归"脚本,非常适合环境体检:

  • Python 的 test_all.py:用 glob 找出 chapter_*/*.py,通过 subprocess 逐个以 python 执行,收集退出码非零文件的 stderr,最后汇总输出 Tested N files / Found exception in M files,有失败即抛 RuntimeError
  • JavaScript 的 test_all.js 与 Ruby 的 test_all.rb:原理相同,分别用 JSR 的 expandGlob 和 Ruby 的 Open3.capture3 遍历 chapter_* 目录批量执行并统计错误。

例如验证 C 环境,可在 codes/c 目录下执行:

cmake -B build
cmake --build build

CMakeLists.txt 会按 add_subdirectory 顺序编译全部 13 个章节,任何一个编译失败都能立刻定位到具体章节目录。

四、可选方案:用 Docker 容器化语言环境

如果不想在宿主机上逐一安装各语言工具链,仓库在 codes/ 目录下提供了一套代码容器方案。

codes/Dockerfile 基于 Ubuntu 镜像,通过构建参数 LANGS 按需安装语言环境,其 case 分支已内置:

  • python:安装 python3.10 并注册为默认 python
  • cpp:安装 g++gdb(后者支持调试);
  • java:安装 openjdk-17-jdk
  • csharp:接入 Microsoft apt 源后安装 dotnet-sdk-8.0
  • 其他语言:输出警告 Warning: No installation workflow for $LANG

配套的 codes/docker-compose.yml 中通过 build.args.LANGS: "python cpp java csharp" 声明要预装的语言列表(以空格分隔,可按需增删)。在 codes/ 目录下执行:

docker-compose up -d      # 构建镜像并启动容器
docker-compose exec hello-algo-code bash   # 进入容器,代码已拷贝至 /codes
docker-compose down      # 删除部署

容器内 WORKDIR /codesCOPY ./ ./ 全部代码,进入后按上表方式运行各语言示例即可。

需要注意的是仓库根目录另有一组 Dockerfiledocker-compose.yml,二者用途不同:根目录镜像基于 python:3.10.0-alpine,安装 mkdocs-material==9.5.5mkdocs-glightbox,分别用简体中文、繁中、英文、日文、俄文五套 mkdocs.yml 构建文档站点,并通过 python -m http.server 8000 在 8000 端口提供服务;contribution 文档 中提到的 docker-compose up -d 部署的是这套文档站,而非代码环境。

五、小结

  • IDE 统一推荐 VS Code,按语言安装对应扩展包(Python Extension Pack、C/C++、Java、Go、rust-analyzer、C# Dev Kit 等)即可获得调试与补全能力;
  • 各语言最低版本要求:Python ≥ 3.10、JDK > 9、.NET 8.0 SDK、Go 1.19、CMake ≥ 3.10(C11)、Rust edition 2021、Swift tools 5.7、TypeScript 5.9 等,均可在仓库对应构建文件中查证;
  • 环境搭建后优先用各语言自带的 test_all 脚本或单章示例做回归验证;
  • 宿主机环境不理想时,可用 codes/docker-compose.yml 通过 LANGS 参数按需拉起多语言容器。

完成以上步骤后,本书所有章节的算法代码即可在本地逐条运行、调试,进入正文各章(如 数组与链表排序)边读动画图解、边跑代码的学习流程。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.13 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
897
5.8 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
529
593
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
916
1.83 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.58 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.35 K
1.46 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.01 K
515
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
547
388