算法精练
算法首先分很多种,但无疑算法的本质是从数的本质上进行计算,然后运用编程的知识进行计算。
那么其过程需要打基础:数学基础、编程基础、数据结构(计算机方向的书)
数学基础(一定要打牢)
好比是万丈高楼平地起,数学学的好坏决定了你的思维逻辑能力以及算法能够达到的高度
- 一般的有关算法的数学基础:统计学、概率论、线性代数
- 统计学的内容:认识客观现象总体数量特征和数量关系的学科,客观现象数量规律性的方法论。
概率论:研究随机现象数量规律的学科,一般是针对现实生活中常有的随机现象做出补充
数据结构:为什么有数据结构和数学基础呢?数据结构将的是数据的组织方式: 换句话说,我就是我们要怎样把这些数据存储起来,所以有列表、堆、栈、树、图,这是数据结构的重点 。而数学只是数字的运用。
编程基础
多练多学多看,没有其他办法和方法论,这是一门实践性的学科,如何发现其中的乐趣只有“有缘分的人”才能读懂。
- 练: 大量的代码练习,letcode上算法题加编程的双重折磨
- 学: 大佬的思维,如何全局思考、通盘考虑、打下铺垫。最后练就代码神功,打通虚拟和现实世界的隔阂,通过代码架起一座高桥,贯穿其中。
- 看: 看书呗!!! 最高境界:嚼碎了咽下去
数据结构(计算机存储、组织数据的方式)
为什么要单独拿出来将呢? because 如果数学不好也没什么影响你做螺丝钉的觉悟,但如果数据结构学不好,真就找不到好工作。
- 逻辑结构:数据和数据之间的逻辑关系: 集合 、线性结构、树形结构、图形结构等
- 物理机构:计算机存储方式:一般指数据和存储之间的映射关系
- 存储结构: 逻辑结构在计算机存储空间中的存放形式称为数据的物理结构 : 顺序存储、链式存储、索引存储和哈希存储