算法改变世界——《算法之美——隐匿在数据结构背后的原理(C++版)》 读后感

 所谓算法,就是隐匿在数据结构后背后的原理,在开发中好的算法可以降低时间复杂度提升可复用性。《算法之美——隐匿在数据结构背后的原理(C++版)》一书围绕算法与数据结构这个话题,用汉诺塔问题和八皇后问题等22个经典算法问题循序渐进、深入浅出地介绍了现代计算机技术中常用的45个经典算法。读后让人醍醐灌顶,茅塞顿开,并感觉相见恨晚。

 

 这本书的试读章节是《递归——老和尚讲故事》,首先介绍了递归的概念,然后用汉诺塔问题,传染病问题和八皇后问题分别阐述并实践了递归的两种思想——分治和回溯。

 

 我是一个不会用NDK的Android工程师,C++水平见笑大方,但是算法的思想是想通的,我读了试读章节后感觉当头棒喝,马上写了一个取消一个界面所有RadioButton点击事件的方法:

 

private void banClickable(ViewGroup radioGroup){
  for (int i = 0;i<radioGroup.getChildCount();i++){
    View v = radioGroup.getChildAt(i);
    if ( v instanceof RadioButton){
     v.setEnabled(false);
    }
    if ( v instanceof ViewGroup){
     banClickable((ViewGroup) v);
    }
   }
 }

 

 在这个一共15个RadioButton的界面里分别去掉每一个的点击事件只需要一分钟,写这个方法需要十分钟。但是如果RadioButton足够多,《算法之美——隐匿在数据结构背后的原理(C++版)》教我的递归算法之于笨方法的效率不亚于活字印刷术之于雕版印刷术的效率。

 

我还有一本算法书《编程之美》,这两本书都有大量算法案例。不同点在于《编程之美》侧重于面试的算法和C的特性,而《算法之美》侧重于大量可以被改写成Java的C++例题来提升读者的算法能力。

你可能感兴趣的:(读后感)