/algorithms

Introduction to Algorithms, Third Edition

Primary LanguageCMIT LicenseMIT

algorithms

要求

  1. 需要实现的算法,**是尽可能多的去涉及不同的问题,解决同一问题的不同方法没必要学习太多,学习几个经典的就好了
  2. 我觉得重要的是算法解决了什么问题,算法学了这么多了,全部实现是不现实的,也没有必要的,以后我应该思考的是,面对实际的问题,我能不能用我所学到的算法知识解决。
  3. string, 实现 算法4 string章节 实现一个低位优先的字符串排序,还一个基于快速排序的字符串排序即可。实现单词查找树 trie, 三向查找就不用实现了。后缀数组。 复杂的数据结构都不需要实现,实现不完的。。。反而搞得我很急 关键是体会**,广泛的学习算法,每个算法都有特定场景的优化,以后真的用到了再说,现在了解就好。 正则表达式不实现了,日后研究编译器时再说。数据压缩算法实现哈夫曼压缩和lzw压缩,但是使用C++在一个单独的仓库里实现。 就酱,不要再折磨自己了,算法是学不完的。
  4. 再说一下模块的建构,修改search文件夹下的目录结构,放弃现在一种树型一个文件夹的做法,还是一个include,一个src,只不过每一个树型一个头文件。
  5. 背了一会政治突然悟了,现在全面重构是没有意义的,因为这个项目是发展的,不可能一成不变的,现在重构了,以后随着新的代码加入,还会重构,这就是浪费时间了。所以我们只应该在必要的时候做部分模块的重构,这才是符合发展的,而不是全盘推翻的。
  6. 太烦了,有好多工作要做,反正我们的目的是学习算法,目的已经达到了。还不如去学新的只是呢。

tips

  1. cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..
  2. dot -Tpng -O *.dot
  3. reformat all code: find . -iname *.h -o -iname *.c -o -iname *.cpp | xargs clang-format -i

这是用lvim写的 现在他的刷新还是有点问题