作者
这是一个有趣的放松观看项目,展示了数据排序的过程。如果你想详细了解数据排序,我还制作了一些解释性项目。
观看九种不同的排序算法对一列整数进行排序,这些整数显示在条形图上,按从最小到最大的顺序排列!你还可以听到读取和写入的声音!
你甚至可以控制播放速度。只需移动鼠标或点击屏幕以显示控件,然后使用按钮暂停/恢复、调整速度、切换到列表中的下一个或上一个算法,或返回菜单。另外,按空格键可以暂停/恢复,按左右箭头键可以跳过。
请注意,如果在启动屏幕上什么也不做达15秒,此项目将自动播放,所以你可以坐下来放松享受表演。
以下算法被可视化:
- 冒泡排序
- 插入排序
- 选择排序
- 快速排序
- 归并排序
- 基数排序(从最低有效位开始,基数4)
- 摇摆排序
- 双向选择排序
- 堆排序
另外,如果你想添加更多算法,只需进入“排序器”精灵并编写另一个算法!使用自定义块来反映操作在可视化中的表现。别忘了将其添加到上述列表和“算法”菜单中,并增加“播放列表”精灵中的算法数量,以确保播放不会在排序完成前停止。
你也可以尝试其他方面,比如数据集!“条形图”精灵中有一个自定义块,随意生成一个新的随机数据集来排序。在这个块中,有一个参数可以设置要排序的项目数。点击一次,它就会自动工作。你可以设置很高(或很低)的值!不过,设置得太高可能会导致一些视觉/音频…事情发生。
这里呈现的一些算法可能与通常实现的方式略有不同,因为Scratch不支持嵌套数组、自定义块作用域变量或返回语句,手动实现这些功能需要一些工作量,而且我还需要动画化整个过程。值得注意的是,所有这些算法实现都是“原地”的,意味着它们不会将任何值复制到临时列表中。
自从我第一次了解排序算法以来,我就喜欢观看和学习数据排序器。事实上,这是我在Scratch上第三次尝试创建可视化排序程序!希望它也能让你着迷!
另外,你能找到秘密排序算法吗???提示:有一个秘密代码!