归并算法在现实编程中是一个比较重要且常用的算法。why?
因为使用它可以简单高效地实现模块间的增量更新。
设想一下,我们有一个会议软件,在界面上有一个人员列表控件显示会议室成员姓名、状态等信息。如果不使用归并算法,当会议成员信息发生变化的时候,我们有两种方式来刷这个列表:1)使用粒度细的通知:XXX进入会议室;XXX更改状态为YYY;XXX更改名字为YYY……,这么做运行效率是高的,但是开发工作量大。2)使用粒度粗的通知:人员列表发生变化。然后人员列表控件清空原来的元素,重新构建一遍,这么做开发是轻松了,但是往往运行效率让人无法忍受。
使用归并算法后,我们就可以在使用粒度粗的通知的同时获得还可以的运行效率。是的,不如使用粒度细的通知那么高效,但一般也足够了。