原来 Merge Sort 的中文名字是 归并排序。《Introduction to Algorithms》上面这个方法很强势啊,用递归实现。
这里我用C和Java实现。
以前自己用C实现:
自己写了一个用来测试的 Test.inf, 文件内容: 2 4 5 7 1 2 3 6 。
在实现 merge_sort 过程中出现了一个错误:忘记加上 merge()那一行了……
囧。这样的话仅仅实现了“分”的思想,却没有“合”。
最近学的Data Structure & Algorithms accelerated,是用Java来讲课的。那么,我也用Java实现一下(Java的确是个比C优雅得多的语言)
用来Sort的class:
用来做Test的main Class:
这次用Java实现,居然前前后后花了很多时间(4h++)。主要是因为在刚刚开始做的时候,没有一个整体的思路:上来就写,边写边改,以至于效率底下,而且漏洞超多。这里要感谢Eclipse的超强的Debug功能,逐步跟踪,才能发现那么多的思维漏洞。