getfromcode

慕课网- 看的见的算法 7个经典应用诠释算法精髓

AI
课程简介

这门课的主题不是把排序、查找的复杂度背一遍,而是把算法从纸面推导拉到屏幕上,让你亲眼看到搜索、回溯、随机模拟、递归分形是怎么一步步跑出来的。它挑选了七个方向各异的经典应用场景,每个场景都对应一类算法思想:图上的遍历、概率统计的逼近、递归结构的自相似生成等等。和纯算法课不同,这里的重点在于"可观察"——数据结构的状态变化、搜索过程的扩散顺序、递归调用的层级展…

已有 1 人浏览 发布 2026-09-21 更新 2026-09-23

这门课的主题不是把排序、查找的复杂度背一遍,而是把算法从纸面推导拉到屏幕上,让你亲眼看到搜索、回溯、随机模拟、递归分形是怎么一步步跑出来的。它挑选了七个方向各异的经典应用场景,每个场景都对应一类算法思想:图上的遍历、概率统计的逼近、递归结构的自相似生成等等。和纯算法课不同,这里的重点在于"可观察"——数据结构的状态变化、搜索过程的扩散顺序、递归调用的层级展开,都被渲染成图形,你能用眼睛判断自己写对了没有。对于已经看过伪代码但仍然写不出可运行程序的人来说,这种把中间状态暴露出来的方式,比再看一遍公式更有效。整门课用 Java 和 Swing 做可视化载体,围绕它搭出一套可复用的绘制与动画框架,后面的每个应用都建立在这套框架之上,这也是它区别于一次性 demo 的地方。

它实际解决的是什么问题

很多人学算法的卡点不在理解结论,而在动手实现时对"过程"没有直觉。比如深度优先和广度优先,书上画的两棵遍历树你都认识,但真到写代码时,栈和队列的替换、访问标记的时机、路径回溯的记录方式,经常一写就乱。这门课用走迷宫把这个问题摊开:从读取迷宫文件、把地图渲染到画布,到递归版深搜、非递归版深搜、广搜,再到把求解出的最终路径高亮出来,每一步都能在界面上看到。你能直观发现深搜会一头扎到底、广搜会一层层扩散,也能理解为什么求解路径往往要额外维护前驱节点。

另一方面,它解决的是"可视化代码写不出来"的问题。想做算法演示,第一道坎不是算法本身,而是 GUI:窗口怎么建、画布怎么画、动画怎么驱动、绘制逻辑和算法逻辑怎么解耦。课程专门用一章处理这块,把 JFrame、图形绘制、抗锯齿与双缓存、动画循环、MVC 分层、工具类封装逐层讲清。等这套地基打好,后面写任何可视化应用都只是往框架里填算法,而不必每次从零搭界面。这也是我看重它的核心原因:算法和渲染被分成两条互不干扰的线,算法只管产出状态,视图只负责画出来。

适合什么基础的人看

最合适的是已经学过一门编程语言、能写基本循环和函数、但对递归和图的遍历还不够熟练的开发者。Java 语法在这里是必需的基础,因为课程的可视化都基于 Java 的图形库,你至少要知道类、继承、接口、集合框架的基本用法。如果你只会 Python 或 JavaScript,理解算法思路没有障碍,但跟着敲代码时需要先补一下 Java 的 Swing 事件与绘图模型,否则容易被 GUI 的细节拖住节奏。

对算法基础的要求不高,但也不是零起点。你会用到栈、队列、递归、简单的概率计算,这些课程会顺带讲到,但不会从最底层讲起。如果你对时间复杂度、递归的调用栈、BFS 与 DFS 的区别完全没有概念,建议先补一层再进来,否则看可视化会变成看动画片,看懂了画面却没接住背后的结构。反过来,如果你已经能熟练手写这些算法,这门课的价值就转到工程侧:怎么把算法封装进一个可视化系统、怎么设计绘制工具类、怎么组织动画,这部分同样值得看。

建议先看哪几块

第一章和第二章是必须打底的部分,不要跳过。第一章交代了整门课要完成的几个项目轮廓和编程环境,帮你建立整体预期;第二章是 GUI 基础,从创建窗口、设置画布、绘制基础图形,到绘制工具类的整理、动画基础、MVC 分层、双缓存与抗锯齿。尤其是绘制工具类和 MVC 这两节,直接决定你后面写出的代码是散成一团还是结构清晰。把第二章吃透,后面每个应用你都能顺着同一套模式往下写,复用度非常高。

之后可以按兴趣分线推进。想练搜索与回溯,就从走迷宫那章入手,它的层次递进设计得很完整:先处理迷宫数据与可视化,再依次上递归深搜、非递归深搜、回溯求解路径、广度优先,最后还做了两种遍历内在联系的对比总结。想接触随机与统计,就看概率模拟那章,从分钱模拟、蒙特卡洛算法、用随机采样估算圆周率,到三门问题和抽奖概率,都是能立刻跑出结果、看到分布变化的小实验。想理解递归的几何表达,就看分形绘制那章,从递归绘制基础到 Sierpinski 三角形、Vicsek 图形、Koch 雪花、递归树,层层展示同一套递归骨架如何生成完全不同的图案。每章都能独立成一个小项目,不必严格按顺序。

学完能独立做什么

把课程跟完并动手实现一遍,你应当能独立写出一个带图形界面的算法演示程序:自己设计窗口与画布、把数据结构和算法状态映射成图形、用动画驱动状态更新。具体到能力上,你能独立完成一个迷宫求解器并把它可视化,能区分并实现递归与非递归的深度优先、广度优先,能在界面上标出搜索轨迹和最终路径;你能用蒙特卡洛方法估算数值并观察收敛过程,能写三门问题的模拟实验并统计不同策略的胜率;你还能用递归生成分形图案,并给它加上参数交互。

更进一步,这套可视化框架本身就是可迁移的产物。你完全可以把绘制工具类和 MVC 结构抽出来,换一个算法主题做成自己的演示项目,比如排序动画、寻路算法对比、粒子或物理模拟。课程没有给出所有场景,但它给了一套可复用的组织方式,这才是长期价值所在。当你以后需要在团队里讲清一个算法,或者想做一个教学工具、调试辅助可视化,这套经验能直接用上。真正的门槛不在算法结论,而在于把抽象状态变成可观察图形的能力,这正是这门课反复训练的东西。

资料怎么配合练习

建议的用法是:每看完一节,先关掉视频自己从零写一遍,再对照检查。可视化类课程最忌讳只看不写,因为绘制细节、坐标换算、动画时序这些东西,只有自己踩过坑才知道卡在哪。第二章的绘制工具类尤其要自己整理一遍,别直接抄,整理的过程就是理解分层的过程。走迷宫那章可以刻意做对照实验:同一张地图分别用深搜和广搜跑,比较访问顺序和路径形态,再回头验证你对两种遍历内在联系的理解。

概率模拟那章适合改参数做实验。把模拟次数调大调小,看估算值怎么波动、收敛速度如何变化;三门问题把换与不换两种策略都跑上千次,用统计结果去对照理论概率。分形那章则建议改动递归深度和绘制参数,观察结构复杂度的变化,同时留意递归深度过大时的性能与栈问题。每章收尾时,把这一章的代码整理成一个可独立运行的小项目,保留下来。几章下来你就有了一个属于自己的算法可视化作品集,比零散的练习片段更有复用价值,也方便日后回顾这套框架是怎么一步步搭起来的。

课程目录

第5章 走迷宫8 集
  • 5-3 迷宫问题和图的遍历.mp4 [27.7 MB]
  • 5-4 深度优先递归走迷宫.mp4 [62.1 MB]
  • 5-6 非递归深度优先走迷宫.mp4 [34.5 MB]
  • 5-8 广度优先走迷宫问题.mp4 [23.6 MB]
  • 5-7 非递归深度优先走迷宫求解最终路径.mp4 [46.2 MB]
  • 5-5 迷宫问题与回溯法.mp4 [40.9 MB]
  • 5-1 处理迷宫文件.mp4 [59.9 MB]
  • 5-9 深度优先遍历和广度优先遍历的内在联系.mp4 [10.8 MB]
第1章 欢迎来到看得见的算法4 集
  • 1-4 更多学习本课程的注意事项.mp4 [15.9 MB]
  • 1-1 欢迎来到看得见的算法.mp4 [27.0 MB]
  • 1-3 关于本课程的编程环境.mp4 [47.4 MB]
  • 1-2 学习这个课程将完成什么项目?.mp4 [83.8 MB]
第3章 概率模拟算法7 集
  • 3-5 不需要可视化的蒙特卡洛模拟.mp4 [27.8 MB]
  • 3-6 三门问题【不易整理‖请关注:CunWorkNoteS】.mp4 [36.6 MB]
  • 3-3 蒙特卡洛算法.mp4 [60.2 MB]
  • 3-1 一个有意思的分钱模拟问题.mp4 [37.4 MB]
  • 3-7 你一定能中奖吗?.mp4 [23.7 MB]
  • 3-2 深入随机分钱问题.mp4 [41.4 MB]
  • 3-4 使用蒙特卡洛算法求PI值.mp4 [91.9 MB]
第9章 分形图的绘制:计算机生成艺术7 集
  • 9-8 利用分形绘制树.mp4 [42.0 MB]
  • 9-4 为分形绘制添加交互.mp4 [33.7 MB]
  • 9-7 编写Koch雪花分形.mp4 [30.5 MB]
  • 9-1 分形到底是什么鬼.mp4 [55.1 MB]
  • 9-5 Sierpinski 鍒嗗舰缁樺埗.mp4 [56.9 MB]
  • 9-3 Vicsek 分形图的绘制.mp4 [41.4 MB]
  • 9-2 递归绘制基础-.mp4 [45.1 MB]
第2章 要想看得见,先要搞定GUI编程11 集
  • 2-8 算法可视化中的MVC.mp4 [34.7 MB]
  • 2-6 高级绘制特性:抗锯齿和双缓存.mp4 [38.0 MB]
  • 2-3 设置画布与图形绘制基础.mp4 [39.7 MB]
  • 2-7 动画基础.mp4 [79.0 MB]
  • 2-1 使用JFrame.mp4 [32.7 MB]
  • 2-5 整理绘制工具类【更多精选‖公众号:CunWorknotes】 .mp4 [41.8 MB]
  • 2-2 创建属于自己的第一个JFrame子类.mp4 [20.4 MB]
  • 2-9 閿洏浜嬩欢.mp4 [30.7 MB]
  • 2-4 使用Graphics2D.mp4 [39.3 MB]
  • 2-10 榧犳爣浜嬩欢.mp4 [63.3 MB]
  • 2-11 课程所使用的GUI编程模板.mp4 [43.4 MB]
第4章 排序算法可视化11 集
  • 4-11 堆排序算法可视化【不易整理‖请关注:CunWorkNoteS】.mp4 [17.2 MB]
  • 4-3 插入排序可视化..mp4 [32.5 MB]
  • 4-8 在快速排序中随机选取标定点.mp4 [48.8 MB]
  • 4-10 三路快速排序算法可视化.mp4 [35.8 MB]
  • 4-4 在近乎有序的数据上测试插入排序算法.【持续更新‖免费提供:CunworknoteS】.mp4 [38.8 MB]
  • 4-1 选择排序算法可视化..mp4 [34.2 MB]
  • 4-6 归并排序算法可视化..mp4 [55.6 MB]
  • 4-2 为可视化添加更多效果.mp4 [62.9 MB]
  • 4-5 通过归并排序算法深入理解递归.mp4 [39.0 MB]
  • 4-9 双路快速排序算法可视化.mp4 [35.5 MB]
  • 4-7 快速排序算法可视化.mp4 [38.6 MB]
第6章 随机迷宫生成9 集
  • 6-3 深度优先遍历生成迷宫.mp4 [41.9 MB]
  • 6-4 非递归深度优先遍历生成迷宫.mp4 [39.9 MB]
  • 6-6 随机队列生成迷宫.mp4 [23.2 MB]
  • 6-7 迷宫生成的迷雾效果【整理不易‖记得关注:CunWorKNotes】.mp4 [41.4 MB]
  • 6-8 生成随机性更强的迷宫.mp4 [61.1 MB]
  • 6-5 广度优先遍历生成迷宫.mp4 [24.5 MB]
  • 6-2 生成迷宫基础.mp4 [40.7 MB]
  • 6-1 浠€涔堟槸杩峰.mp4 [21.9 MB]
  • 6-9 更多迷宫问题.mp4 [20.9 MB]
第7章 自己做一个扫雷游戏8 集
  • 7-2 扫雷代码基础.mp4 [56.2 MB]
  • 7-6 为扫雷程序加入交互.mp4 [81.1 MB]
  • 7-8 更多扫雷相关和floodfill算法的应用.mp4 [21.1 MB]
  • 7-4 验证随机生成雷区算法的随机性.mp4 [27.5 MB]
  • 7-5 Fisher-Yates洗牌算法的应用.mp4 [16.9 MB]
  • 7-7 鎵浄涓巉loodfill绠楁硶.mp4 [32.2 MB]
  • 7-3 随机生成雷区.mp4 [53.5 MB]
  • 7-1 扫雷是什么鬼?扫雷里包含什么算法?.mp4 [13.1 MB]
第8章 益智游戏自动生成解 - Move the Box8 集
  • 8-5 处理箱子掉落过程.mp4 [38.4 MB]
  • 8-3 求解Move the Box的渲染【公重号:CunWorkNotes】.mp4 [126.8 MB]
  • 8-2 求解Move the Box的数据架构.mp4 [106.9 MB]
  • 8-9 更多人工智能相关【公重号:CunWorkNotes】.mp4 [20.8 MB]
  • 8-6 处理箱子消除过程.mp4 [56.5 MB]
  • 8-7 显示问题的解.mp4 [68.8 MB]
  • 8-4 鎼滅储妗嗘灦.mp4 [118.8 MB]
  • 8-8 更多搜索优化思路.mp4 [16.9 MB]
第10章 看得见的算法,下季再见!2 集
  • 10-1 看得见的算法,下一季再见!.mp4 [9.4 MB]
  • project【更多精选‖公众号:CunWorknotes】 .zip [2.3 MB]
课程购买
课程价格
金币29.9
299金币限时优惠会员免费
销量:0
💎 开通会员每日免费下载,比单买更划算 →
支付成功后会自动显示下载资源云盘的链接!点击链接即可下载到本地。