安塔的学习笔记,就是安塔将他在学习新算法的时候对于算法的一些理解用文字记录下来而成的学习笔记。

一开始,我仅仅是觉得将自己对算法的理解表达清楚可以使自己对其的理解更加透彻。以这个为目的写了FFT之后,感觉不错,就写了斐波那契堆

写了斐波那契堆,我感觉有必要写个前言将这系列学习笔记的风格和侧重介绍一下,就有了这一篇总前言。

安塔是一个超级弱的蒟蒻,代码能力超级差,差到写线段树都能写十颗挂九颗。所以我写博客的时候更侧重于理论上和思想上的知识,甚至连代码都不贴。

我对“理解算法”的理解是,算法和数据结构(统称算法好了)的理解有三个部分,分为前导侧、算法实现和应用侧。其中,前导侧包含的是算法的基本思想、算法的提出原因和其时间复杂度,而算法实现则侧重于算法的代码实现、常数优化,算法的应用侧包含的是算法的应用技巧,在具体问题上,算法的哪些地方可以简化,哪些地方要进行拓展。

例如线段树,前导侧就是线段树的基本思想,而算法实现就包含了l+r-1这样的技巧,应用侧则是对线段树的各种神奇的应用(例如区间开根号递归到叶子)。前导侧和应用侧的一些东西是相通的,而一些东西是独立的。

其中,对于应用侧的理解是需要靠刷题积累的。由于安塔写的是学习笔记,而不是复习笔记,所以安塔几乎没有实际应用过那些算法。而算法实现这一块东西,安塔连代码都没贴,更是无从谈起。所以,安塔的学习笔记侧重的是算法的前导侧,以及算法的时间复杂度分析这一块内容。

至于讲得清不清楚、正不正确、好不好嘛……

安塔也看不出来,反正安塔已经尽力了

目录

知识树会补全的!

算法

数学

数据结构

基本思想

暂无