2507010323王炳淇——排序算法可视化系统的设计与实现

2507010323王炳淇——排序算法可视化系统的设计与实现

wbq0422

2026-02-24 发布60 浏览 · 0 点赞 · 0 收藏

排序算法可视化系统的设计与实现

 

  计算机科学教育的不断发展,算法教学变得越来越重要。排序算法作为计算机科学的基础内容,其理解和掌握对学生编程能力的培养至关重要。然而,传统的课堂教学往往难以直观展示算法的执行过程,学生很难理解算法每一步的具体操作。为了解决这一问题,本课题设计并实现了一个基于Web的排序算法可视化与教学工具。

  统采用HTML5CSS3JavaScript技术,实现了九种常见排序算法的可视化演示,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、桶排序和基数排序。

系统提供了交互式控制面板,用户可以调整数组大小、动画速度,实时观察算法的执行过程,并通过颜色标识不同状态的元素。系统还提供算法信息、统计数据和步骤说明,帮助学生深入理解算法的原理和性能特征。

本工具不仅适用于课堂教学辅助,也可作为学生自主学习的平台,通过可视化手段降低算法学习的难度,提高学习效率。

关键词: 排序算法;可视化;教学工具;Web开发;JavaScript

 

 


 

目录

第1  绪论. 1

1.1研究背景. 1

1.2项目目标. 1

1.3论文组织结构. 1

第2  关键技术研究. 2

2.1 HTML 2

2.2 CSS3 2

2.3 JavaScript 2

2.4 可视化技术. 2

第3  核心功能的实现. 3

3.1 交互控制功能. 3

3.2 算法可视化实现. 3

3.3 教学辅助功能. 3

第4  排序算法可视化系统实现. 4

4.1 交互控制功能. 4

4.2 统计数据实时更新. 4

4.3 功能扩展模块的实现. 5

第5 项目特色. 6

5.1 可视化体验优化. 6

5.2 教学实用性. 6

5.2 界面交互友好. 6

第6 项目测试. 7

6.1 测试环境. 7

6.2 系统测试用例. 7

6.2.1 排序算法执行测试. 7

6.2.2 交互功能测试. 7

6.2.3 多算法兼容及数据统计测试. 7

6.3 测试结果分析. 8

第7 项目应用场景. 9

7.1教学场景. 9

7.2算法学习场景. 9

第8  总结与展望. 10

8.1 项目总结. 10

8.2 未来优化方向. 10

8.3 项目价值. 10

8.4 心得体会. 10

8.4.1 小组分工. 10

8.4.2 个人总结. 10

8.4.3 团队总结. 11

参考文献. 12

 

第1章  绪论

1.1研究背景

排序算法是计算机科学中最基础、最重要的内容之一,广泛应用于数据处理、数据库管理、图像处理等多个领域。在计算机科学教育中,排序算法的学习是培养学生算法思维和编程能力的关键环节。然而,传统的算法教学主要依赖静态图示和文字描述,难以直观展示算法的动态执行过程,导致学生难以理解算法的核心思想和执行细节。

随着Web技术的发展,基于浏览器的可视化工具为算法教学提供了新的可能性。通过动态可视化,学生可以直观观察算法的每一步操作,理解不同算法之间的差异,从而提高学习效率和理解深度。因此,开发一个功能完善、交互友好的排序算法可视化教学工具具有重要的教育意义。

1.2项目目标

本课题旨在设计并实现一个基于Web的排序算法可视化与教学工具。该系统支持九种常见排序算法的可视化演示,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、桶排序和基数排序。系统的主要研究内容包括:

设计直观友好的用户界面,支持算法的选择、参数的调整和执行的控制。

实现算法的可视化演示,通过颜色标识不同状态的元素,直观展示算法的执行过程。

提供算法信息、统计数据和步骤说明,辅助学生理解算法的原理和性能。

实现交互式控制功能,包括开始、暂停、重置等操作,支持学生自主探索。

1.3论文组织结构

本论文分为七个章节,各章节的内容安排如下:

1 章介绍了课题的研究背景,并阐述了论文相关内容可以帮助学生更好的理解算法。

2 章简单介绍了排序算法可视化系统的关键技术研究,包括 HTMLCSS3等。

3 章介绍了核心功能的实现,主要对交互控制功能,算法可视化实现,教学辅助功能。

4 章介绍了如何实现排序算法可视化系统的。

5 章详细介绍了项目特色,重点阐述了项目区别于其他组,独属于我们的特色

6 章介绍了核心功能的实现,以及实现排序算法可视化系统的测试环境。

7 章介绍了项目应用场景,主要包括教学场景,以及算法学习场景。

8章进行了工作总结和展望,阐述了开发本系统完成的工作和对系统的展望。

 

第2章  关键技术研究

2.1 HTML

HTML的英文全称是 Hyper Text Markup Language,即超文本标记语言。HTML是由Web的发明者Tim Berners-Lee和同事Daniel W.Connolly于1990年创立的一种标记语言,它是标准通用化标记语言SGML的应用。用HTML编写的超文本文档称为HTML文档,它能独立于各种操作系统平台(如UNIX,Windows等)。使用HTML,将所需要表达的信息按某种规则写成HTML文件,通过专用的浏览器来识别,并将这些HTML文件“翻译”成可以识别的信息,即我们所见到的网页。

2.2 CSS3

CSS3(Cascading Style Sheets Level 3)是网页样式设计的核心技术标准,作为 CSS 的升级版本,以模块化设计为核心,在视觉表现、布局能力与动态交互上实现了全面增强。其核心特性涵盖基础样式优化(圆角、阴影、渐变、透明色)、灵活布局方案(Flex 弹性盒、媒体查询、calc () 动态计算)、动态效果工具(过渡 transition、变换 transform、关键帧动画 @keyframes)及精准选择器增强,无需依赖图片或 JavaScript 即可实现丰富视觉与交互效果。

在排序算法可视化工具中,CSS3 发挥着关键作用:通过 Flex 布局实现界面分区与柱状图排列,利用渐变与阴影提升界面层次感;借助 transition 实现柱状图高度、颜色的平滑过渡,配合 @keyframes 动画标记排序状态;依托媒体查询与动态计算适配不同数组大小和屏幕尺寸,确保可视化效果流畅直观。其优势在于开发高效、性能优异,浏览器原生渲染保障动画流畅性,大幅提升了排序过程展示的直观性与工具的教学实用价值。

2.3 JavaScript

JavaScript 是前端开发的核心脚本语言,具备跨平台、动态性、弱类型等特性,支持面向对象与函数式编程范式。它不仅能操作 HTML/CSS 实现页面交互,还可通过异步编程(Promise/async-await)处理数据流转,是实现前端动态逻辑的核心。

在排序算法可视化工具中,JavaScript 承担核心逻辑开发:实现 9 类排序算法的执行逻辑,嵌入可视化状态标记;管理排序过程的开始、暂停、重置等交互状态;同步更新比较次数、耗时等统计数据;控制 CSS3 动画触发与状态切换,将抽象的算法步骤转化为直观的视觉变化。其动态执行特性确保排序过程实时渲染,是连接算法逻辑与可视化展示的关键纽带,也是工具交互性与教学性的核心技术支撑。

2.4 可视化技术

本系统采用基于DOM元素的可视化方案,通过动态调整div元素的高度和样式来模拟数组元素的变化。这种方案的优点包括:实现简单:无需复杂的图形库,使用基本的HTML和CSS即可实现。性能良好:对于中等规模的数据,能够提供流畅的动画效果。兼容性好:在现代浏览器中具有良好的兼容性,无需额外插件。

 

第3章  核心功能的实现

3.1 交互控制功能

1)参数调节

·数组大小:通过滑动条调节,实时更新页面显示的数组长度,且仅在非排序状态下生效,避免干扰算法执行;

·动画速度:滑动条数值反向映射为动画延时(数值越大速度越快),并提供极快 / / 普通的文本提示,符合用户直觉。

2)状态管理

·排序状态:通过isSorting(是否排序中)、isPaused(是否暂停)两个核心状态变量,控制按钮可用性和算法执行流程;

·暂停 / 继续:支持排序过程中的暂停与继续,暂停时停止计时和动画,继续时恢复执行;

·重置功能:终止当前排序流程,重置统计指标,重新生成随机数组,恢复初始状态。

3.2 算法可视化实现

1)通用可视化逻辑

·元素标记:为数组元素对应的柱状图添加comparing(比较中)、swapping(交换中)、sorted(已完成)类名,通过 CSS 样式区分状态;

·延时控制:封装sleep函数,支持暂停状态下的延时等待,保证动画与算法执行同步;

·统计更新:每次比较 / 交换操作触发统计指标更新,实时渲染到页面统计卡片中。

2)典型算法实现示例

·冒泡排序:双重循环遍历数组,标记相邻比较的元素,交换逆序对,每轮结束后标记末尾已排序元素;

·快速排序:基于分治法实现,标记基准元素,可视化分区过程中元素的比较与交换,基准归位后标记为已排序;

·桶排序:专属的桶容器可视化,展示元素分配到桶、桶内排序、合并桶的完整流程,适配非比较类排序算法的可视化需求。

3.3 教学辅助功能

·算法信息动态更新:根据选中的算法,自动切换原理描述、伪代码、时间 / 空间复杂度展示,伪代码采用代码块样式,提升可读性;

·步骤实时说明:在算法执行的关键节点(如选择基准、比较元素、交换位置、插入元素等),更新步骤文本,解释当前操作的意义;

·统计数据展示:实时统计比较次数、交换次数、耗时,直观体现算法的性能特征,辅助理解时间复杂度的实际表现

 

4  排序算法可视化系统实现

4.1 交互控制功能

这个排序算法可视化工具的控制面板,是学习排序逻辑的 “实操助手”:你可以通过滑块把数组大小调到 20(或按需增减),动画速度也能自由控速;核心的排序算法支持从下拉菜单选冒泡、选择、插入、归并、快速、堆排、桶排等主流类型,覆盖了基础到进阶的算法类型。

操作流程很顺畅:点“生成新数组”就能得到随机待排序列,“开始排序”后,元素会以不同颜色标注状态 —— 紫色是正常元素、红色在比较、橙色处于交换、绿色代表已排好序,蓝色还会标出算法的基准点,搭配暂停、重置功能,能边看动态过程边拆解每一步逻辑,把抽象的排序步骤变成了可观察、可复盘的直观演示。

4.2 统计数据实时更新

这是插入排序的可视化演示界面,用高度渐变的柱形代表待排数字,直观呈现序列初始状态。界面实时展示排序进度条,下方还统计了核心数据:当前比较次数、交换次数均为66次,运行耗时2667ms

整个过程把抽象的插入排序步骤转化为动态操作:柱形会通过颜色变化(比如变红代表比较、变橙代表交换)展示“逐个将元素插入已排序部分”的逻辑,既让算法步骤看得见,也能通过统计数据直观感知算法的时间开销,很适合初学者理解插入排序的执行细节。

4.3 功能扩展模块的实现

这个界面展示的是桶排序的算法信息页,它先说明桶排序的核心逻辑:把元素分到有限桶中、逐桶排序再合并,适配数据分布均匀的场景。下方附上 C++ 代码示例,清晰拆解分桶、桶内排序、合并三步流程,还标注了时间 / 空间复杂度均为 O (n+k)

而这个工具不止支持桶排序,还涵盖冒泡、选择、插入、归并、快速、堆排等共 8 种主流算法,每种都有类似的原理说明、代码示例和复杂度标注,搭配前面的可视化演示,能从原理、代码、执行过程三个维度,帮学习者系统掌握不同排序算法的特点与差异。

 

 

5项目特色

5.1 可视化体验优化

·算法专属可视化逻辑:针对不同类型排序算法的核心特性,设计差异化可视化方案。比较类算法(如冒泡、快速排序)突出元素比较与交换的动态过程,通过色彩渐变标记比较状态、闪烁效果强调交换动作;非比较类算法(如桶排序、基数排序)创新实现专属可视化载体,桶排序直观呈现元素分桶 - 桶内排序 - 合并输出的完整流程,基数排序通过多列分区展示按位排序的层级逻辑,彻底告别单一化柱状图展示模式,让可视化更贴合算法本质。

·精细化视觉呈现:柱状图高度调整、颜色切换均配置 150-300ms 梯度过渡动画,避免视觉跳变,确保排序过程流畅连贯;支持根据数组大小智能适配显示模式,当数组长度小于 25 时,自动为柱状图添加数值标签,精准呈现元素大小关系,数组长度大于 25 时则隐藏标签,聚焦排序整体流程,兼顾细节查看与全局观察需求。

·多维度状态标识:通过三色体系清晰区分元素状态 —— 蓝色标记未排序元素、黄色高亮比较中元素、绿色锁定已排序元素,配合 Font Awesome 状态图标,让用户直观识别算法执行阶段;针对快速排序的基准元素、归并排序的合并区间等关键节点,添加专属图标标记与边界高亮,强化核心步骤的视觉辨识度。

5.2 教学实用性

·全类型算法覆盖:系统整合 9 种经典排序算法,涵盖比较类(冒泡、选择、插入、归并、快速、堆排序)与非比较类(计数、桶、基数排序)两大类别,既包含基础入门算法,也涵盖高阶优化算法,完整覆盖数据结构课程的核心教学内容,满足不同学习阶段的需求。

·量化性能直观化:实时统计并展示算法执行的关键指标,包括比较次数、交换 / 移动次数、执行耗时,通过动态更新的数字卡片,将抽象的时间复杂度转化为可感知的量化数据;支持多算法同步对比演示,用户可同时启动两种算法,在相同数据规模下直观观察性能差异,深化对算法效率的理解。

·分层教学适配:提供三级速度调节模式(慢速 / 中速 / 快速),慢速模式下每步操作伴随文字解释,适配课堂逐步骤讲解场景;快速模式可展示算法整体执行流程,适合对比不同算法的效率差异;同时支持自定义动画速度,通过滑动条精准控制延时时间,满足个性化教学与学习需求。

·知识体系化呈现:每种算法均配套完整的教学信息包,包括自然语言原理讲解、结构化伪代码(带语法高亮)、时间 / 空间复杂度标注(含最优 / 平均 / 最坏情况),并关联算法适用场景说明,帮助学习者构建原理 - 实现 - 性能 - 应用的完整知识框架。

5.2 界面交互友好

智能状态反馈:系统通过动态调整按钮状态与视觉提示,为用户提供清晰的操作引导。当排序算法运行时,生成数组开始排序按钮将被自动禁用并降低透明度,仅保留暂停重置为可用状态,有效防止误操作干扰排序进程。暂停时,暂停按钮即时切换为继续状态,同时界面状态提示文字同步更新,确保操作意图与系统反馈实时一致,形成直观的操作逻辑闭环。

操作流程优化:系统遵循生成数组”→“选择算法”→“调节参数”→“启动排序的线性操作流程,逻辑清晰且无冗余步骤。所有核心功能按钮均集中布局,并辅以直观的图标标识(如用刷新图标代表重置、用播放/暂停图标控制排序进程),显著降低了用户的学习与操作成本,使新用户也能快速上手。

异常处理与兼容性:系统具备完善的健壮性设计。在输入环节,对数组大小进行了范围限制(5-50),并对非法输入提供友好的提示。在排序过程中执行重置操作时,系统能够自动且平滑地终止当前算法线程,并瞬时恢复至初始状态,无任何卡顿或延迟。在显示层面,依托CSS媒体查询与Flex弹性布局技术,界面能够自适应不同屏幕尺寸(从移动设备到桌面显示器),确保在所有终端上均能获得良好的视觉与交互体验。

个性化定制功能:系统支持随机生成固定种子生成两种数组生成模式。固定种子模式可生成完全相同的数组序列,便于用户在不同算法间进行公平的性能对比。此外,系统提供包括默认、深色、亮色在内的多种柱状图颜色主题,用户可根据不同的使用场景(如课堂演示、夜间自学)自由切换,有效提升了长时间使用的视觉舒适度与专注度。

 

6章 项目测试

6.1 测试环境

测试环境主要为一台用于算法演示和功能验证的计算机,配置表如表 6-1 所示。

机型

硬件

软件配置

编程语言

联想拯救者

骁龙 778G

Windows 10Chrome 浏览器

c++

6.2 系统测试用例

6.2.1 排序算法执行测试

对核心的排序算法执行功能进行测试,验证不同算法运行时数据交互和排序结果的正确性。

步骤

条件描述

预期结果

运行结果

时间复杂度

1

选择插入排序,生成 20 个随机数

元素按插入排序逻辑完成排序,可视化动画正常

排序完成,动画流畅

O(n+k)

2

选择快速排序,调整数组大小为 5

快速排序基准点标记正确,排序效率符合预期

基准点标注准确,排序完成

O(n+k)

3

选择桶排序,设置动画速度为最慢

分桶、桶内排序、合并过程清晰展示

过程可视化无卡顿

O(n+k)

6.2.2 交互功能测试

对可视化工具的交互控件功能进行测试,验证参数调整、操作按钮的响应是否正常。

步骤

条件描述

预期结果

运行结果

1

拖动数组大小滑块调整数值

可视化区域柱形数量随数值同步变化

数量调整准确

2

点击 “暂停” 按钮

排序动画立即停止,保留当前排序状态

暂停响应及时

3

点击 “重置” 按钮

恢复初始随机数组状态,统计数据清零

重置效果符合预期

6.2.3 多算法兼容及数据统计测试

对 9 种排序算法的兼容性和数据统计功能进行测试。

步骤

条件描述

预期结果

运行结果

1

依次选择 9 种排序算法运行

每种算法均能正常执行,无报错

9种算法兼容无异常

2

运行冒泡排序,查看统计数据

比较次数、交换次数、耗时数据实时更新

数据统计准确

3

对比相同数组下快速 / 插入排序耗时

快速排序耗时显著低于插入排序

耗时对比符合算法特性

4

点击算法说明按钮

弹出对应算法的原理、复杂度、代码示例

说明内容展示正常

6.3 测试结果分析

通过对排序算法执行、交互功能、多算法兼容及数据统计模块的测试,可视化排序算法工具的所有功能模块均达到预期目标。该系统拥有友好的可视化界面,支持 8 种主流排序算法的动态演示,交互控件响应及时,数据统计精准;同时具备较快的运行速度,动画演示无卡顿,满足学习者直观理解排序算法逻辑的需求。系统在实用性、效率和可维护性上表现良好,功能开发全部完成且通过测试。

 

7 项目应用场景

7.1教学场景

(1)课堂演示教学 

在高校计算机专业《数据结构》《程序设计基础》等课程的排序算法教学中,本系统可作为核心演示工具,助力教师高效传递知识点。教师通过投影设备展示系统界面,先选择目标算法(如快速排序),调节数组大小至 15-20 个元素(兼顾细节与全局),将动画速度设为 “慢速”,配合实时更新的步骤说明,逐帧讲解算法核心逻辑 —— 如快速排序的基准元素选择、分区操作、递归调用过程,通过黄色高亮标记比较元素、绿色锁定已排序区间,让抽象的 “分治法” 思想可视化。同时,实时统计的比较次数、交换次数可直观印证算法时间复杂度,例如在讲解冒泡排序与快速排序的效率差异时,可通过相同数据规模下的耗时对比,让学生具象化理解 O (n²) O (nlogn) 的复杂度差距,强化知识点记忆。

(2)课堂互动实践

在小班教学或实验课中,可组织分组互动练习。将学生分为若干小组,每组分配不同算法(如 A 组负责归并排序、B 组负责堆排序),要求小组基于系统演示,结合算法原理说明与伪代码,分析算法的关键步骤与性能瓶颈。学生可通过调节参数反复演示,观察数组大小变化对算法耗时的影响(如计数排序在数据范围较小时的高效性),或对比相同算法在有序、逆序、随机数组下的执行差异。教师通过巡视指导,解答学生在演示过程中发现的疑问(如 “快速排序为何在有序数组下性能下降”),并组织小组汇报,通过系统同步展示各组分析结果,培养学生的逻辑分析与团队协作能力。

7.2算法学习场景

(1)初学者入门引导

对于编程入门者或非计算机专业学习者,排序算法的抽象逻辑常成为入门障碍。本系统通过 “可视化 + 通俗讲解” 的模式,帮助初学者快速建立算法认知。学习者可从基础的冒泡排序、插入排序入手,通过 “生成随机数组 - 启动排序 - 暂停观察” 的流程,直观看到元素 “比较 - 交换 - 归位” 的完整过程,理解 “排序” 的核心本质。系统为每个算法配套的简洁原理说明(如 “冒泡排序像气泡上浮,每次将最大元素逐步移至末尾”)与状态标记(comparing/swapping/sorted),可帮助初学者避开复杂代码细节,先建立感性认知,再逐步深入理解逻辑,有效降低入门门槛。

(2)算法深度对比分析

对于有一定基础的学习者(如准备算法竞赛、求职面试的学生),系统可作为算法性能分析与适用场景对比的核心工具。学习者可通过多维度对比验证算法特性:在数据规模维度,对比快速排序与归并排序在小(10 个元素)、中(30 个元素)、大(50 个元素)数组下的耗时差异,理解分治算法的高效性;在数据特征维度,对比计数排序(适用于数值范围小的整数)、桶排序(适用于均匀分布数据)与快速排序在不同类型数据(如 0-100 的整数、随机浮点数)下的执行效果,明确各类算法的适用边界;在空间复杂度维度,通过观察归并排序的额外空间占用(合并过程中需临时数组)与堆排序的原地排序特性,深化对空间复杂度的理解,为算法选型提供实践依据。

3)算法优化实践参考

对于进阶学习者或开发者,系统可作为算法优化的实践参考工具。系统提供的优化版算法实现(如带 “无交换则提前退出” 机制的冒泡排序),可帮助学习者理解算法优化的核心思路;通过调节参数观察优化效果,例如对比优化前后的冒泡排序在接近有序数组下的比较次数与耗时,量化优化收益。此外,学习者可基于系统展示的算法逻辑,尝试自主设计优化方案(如调整快速排序的基准元素选择策略),并通过系统的统计功能验证优化效果,培养算法优化思维与实践能力。

4)碎片化学习场景适配

系统支持桌面端与移动端适配,满足学习者的碎片化学习需求。学习者可在通勤、课间等碎片化时间,通过手机端快速查看单个算法的核心流程(如利用 “快速模式” 演示堆排序的整体执行),巩固知识点记忆;也可在深度学习时段,通过桌面端调节参数、查看详细统计数据,进行深入分析。系统简洁的操作逻辑与直观的视觉呈现,让学习者无需复杂配置即可快速启动演示,充分利用碎片化时间提升学习效率。

 

8  总结与展望

8.1 项目总结

本课题设计并实现了一个基于Web的排序算法可视化与教学工具。主要工作成果包括:

系统设计与实现:完成了系统的整体设计,实现了九种排序算法的可视化演示。

用户界面开发:设计了直观友好的用户界面,提供了完整的交互控制功能。

教学辅助功能:实现了算法信息展示、步骤说明、统计信息等教学辅助功能。

系统测试与优化:对系统进行了全面测试,确保功能的正确性和性能的稳定性。

通过本项目的开发,我们深入理解了排序算法的原理和实现细节,掌握了Web前端开发技术,特别是动态可视化技术的应用。系统在实际教学中具有良好的应用价值。

8.2 未来优化方向

·功能扩展:增加更多排序算法(如希尔排序、鸡尾酒排序),支持自定义数组输入(而非仅随机生成);

·性能优化:针对大数据量(如数组大小 50)的动画渲染进行优化,避免卡顿;

·交互增强:添加算法执行步骤的回溯功能,支持回看关键步骤;增加音频提示,强化关键操作的反馈;

·适配优化:完善移动端适配,支持触屏操作,拓展使用场景;

·教学拓展:添加算法练习题、知识点问答等功能,打造一站式排序算法学习工具。

8.3 项目价值

本项目不仅是一款排序算法可视化工具,更是算法教学模式的补充与创新。通过可视化 + 交互 + 教学信息的融合,将抽象的算法知识转化为直观的视觉体验,有助于降低算法学习的门槛,提升学习者的理解效率和学习兴趣,具有较强的教学实践价值。

参考文献

[1] Cormen T H, Leiserson C E, Rivest R L, et al. Introduction to Algorithms[M]. 3rd ed. MIT Press, 2009. (算法经典教材,排序算法部分)

[2] MDN Web Docs. JavaScript教程[EB/OL]. https://developer.mozilla.org/zh-CN/docs/Web/JavaScript, 2024. (实际参考的前端技术文档)

[3] Visualgo. Sorting Visualization[EB/OL]. https://visualgo.net/en/sorting, 2024. (著名的算法可视化网站,设计参考)

[4] Flanagan D. JavaScript: The Definitive Guide[M]. 7th ed. O'Reilly Media, 2020. (JavaScript权威指南)

[5] 王红梅, 胡明, 王涛. 数据结构(C++)[M]. 清华大学出版社, 2017. (排序算法基础)

 

 

请前往 登录/注册 即可发表您的看法…