最近有空,想学习下算法。一直感觉它很高深的样子,尤其我数学又不好。
但我还是想学学看,万一能学到点东西呢,,,
先来了解下算法的定义:是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
从定义来看,算法就是一种策略,一种思路,一种方法,不是某种语言。
关于算法的相关定义有许多,什么有穷性,确切性,时间复杂度,空间复杂度,稳定或不稳定排序,各种分类等,我们不研究那么深入的东西。
算法的历史:
“算法”的中文名出版《周髀[bì]算经》;
算法最开始的意思,是阿拉伯数字的运算规则;
史上第一个算法据说是,“欧几里得算法”。
算法有什么用呢?
火云邪神说,天下武功,唯快不破,算法就是干这个的。
一个股票页面,要加载10万行数据到dom里,怎么快?不一样的算法,效率是不一样的。这里我装个B就好,不多说,说多露怯。
你看,我不是计算机专业的,我当初是学会计电算化的。那怎么学算法会比较好呢?
我问过一些之前在北京遇到的神人,他们大意就是算法就是摆弄各种数据的,而数据是有结构的。所以你得先把数据结构搞搞清楚,然后再玩算法。
所以,线性表,树,图,集合,链表,队列,栈,这些基本的数据结构先去搞清。
然后再来学习基本的查找和排序算法。
再接下来就是分析算法的复杂度,什么“代价”的问题,包括时间和空间的消耗。
再往后,我就没记住了,因为我听不懂了,全是数学公式。
总结,数据结构是基础,灵魂。