BubbleSort

可视化排序实践之冒泡排序

五迷三道 提交于 2020-10-28 09:11:56
如果 排序过程 和 程序执行 能结合起来,那么这个过程会更加直观。 本文给出一个冒泡排序的可视化排序实现, 效果如下图所示: 界面组成 界面很简单就包括两个部分: 界面左侧是可视化排序部分 , 右侧是冒泡排序的代码 。 如何实现 代码 和 排序 的视觉同步? 关键点 如何在页面上表示出排序程序的运行过程。 如何将排序程序的运行过程和可视化排序结合起来,保持状态一致。 解决方法 在这个例子中,我才用了 javax.swing.JList 模拟程序的运行。 javax.swing.JList 有一个 setSelectedIndex 的方法,能高亮显示指定的行。 通过改变selectedIndex的值,能够达到模拟冒泡排序程序执行的效果。在这个过程中,记录下两个循环的索引状态值,根据这些状态值去调整可视化排序。 页面展示 初始化页面 程序随机产生10个数字,然后展示在左侧的排序面板中,每个数都用绿色的矩形展示。 private List<NumberRectangle> initialNumberRectangles() { List<NumberRectangle> list = new ArrayList<NumberRectangle>(); /** * 随机产生10个数组 */ Random random = new Random(); for (int i = 1; i <=