由于兴趣的问题,现在才开始认真的把数据结构与算法分析里的程序实现。渐渐发现算法其实就是一个解决问题的逻辑思维过程,即需要严谨的数学、逻辑基础,有时候也需要一些tick。但不管怎样,最终的目的就是解决问题!问题的解决才是最核心的,在解决问题的旅途中,你可以使用任何领域的知识,你看像遗传算法、蚁群算法、随机算法等就是人们利用自然界的知识来处理用逻辑难以解决的问题。明白了这点,不再把算法当做一个严格的形式化的逻辑体系来对待,我发现算法的学习更加轻松和明晰了。God bless us!
这几天实现课本上的算法,体会很深的一点就是初次写成的程序老有这方面或哪方面的疏忽,一个变量没考虑到,边界条件疏忽或是重复处理等等。今天意识到,必须要搞明白你的问题,然后再搞明白处理流程,最后才是写程序。而在写程序的时候,为了避免上述疏忽,可以把一个操作(函数等)要涉及的变量充分考虑到,并搞清楚这个操作过后,各个变量的变化情形是怎样的。一开始不要追求完美简洁的代码,哪怕啰嗦一点,也要保证逻辑上正确,等以后的编码实践多了以后,自然会对代码的优化有所感觉。