今天又有一点空,写了归并排序,并用swing动画显示了排序过程。
排序过程不难,可以看这里http://en.wikipedia.org/wiki/Merge_sort,下面主要说说可视化的。
像诸如冒泡排序的话,如果想对排序过程做可视化。那么只要简单的在每个绘图主循环中重绘整个数据就行了。
但是,归并排序不一样,因为它的排序过程是不停创建一些中间小数组来存储,然后不停合并这些数组,最后实现排序。
因此想可视化排序过程,我这里采用的是生产者-消费者模型。就是GUI线程和排序线程分别是消费者和生产者。
下面是运行截图(可运行程序和源码在文章后面可以下载):
可运行程序和源码下载:点击前往下载(之前那个地址的文件是空的,已经改正)
有发现BUG或可优化的地方,望指教。