如同自己与自己的影子作战。
TIN算法的第二个版本开发完毕了。其中的滋味只有自己知道。本来以为在保证原来思路基本不变的前提下,只要将数据结构“减减肥”,换个轻量级的东东是个很简单的事情。开发下来才知道整整耗费了3,4个月的时间。困难远远大于预先的估计。
原先那套结构精致复杂,可以支持各种后续操作。可是同志们用不到那么多功能。因此实在是有点“技术过剩”。
那就换个轻量级的数据结构,满足日常需要就行了呗,因此第二版的动因出现了。一直想动,实在没时间,新任务压的我喘不过气来。可开发第二版的年头如同藏在内心深处一双眼睛,总在我稍有闲暇的时候意味深长的看我一眼。让我总觉得欠点什么。我承认,我是个完美主义者。
终于,动手了。发现人就是这样,做一件事情,做本身并不是最难熬的,难熬的是下这个决心。干的本身乏善可陈。干这一行的都知道。编码,走查,调试,测试。个中滋味也只有自己知道。
终于弄完了,测试一下,结果出乎意料。
本以为只是替换了简单的数据结构,那么生成三角网的过程中维护那么复杂一套数据结构的时间就会省下来,自然,时间复杂度自然会降低;另一方面,数据结构简单了,就不需要很多内存开销,空间复杂度也会降下来。
想法是不错,可实际测试结果却难看的多。确切的说,只猜对了一半。空间复杂度确实降下来了,但是消耗的时间确整整提高了1倍。当辛苦了好多天却发现是这么个结果。心情沮丧到极点。分析,分析,分析,一定找到原因。
原来,我替换掉了复杂的那套结构,固然省了不少内存资源,可是同时也把对三角网的各种操作的便利性也替换掉了。从而,导致使用简化后的数据结构做同样一种操作与原先相比,笨重了很多。结果积少成多,不但将不用维护数据结构节省的时间消耗掉,而且大大超出 ,导致时间复杂度上升。
想想也是,哪有那么好的事情,要想空间复杂度,时间复杂度同时下降。太难了!