[关闭]
@coder-pig 2019-05-31T05:42:56.000000Z 字数 2718 阅读 1591

小猪的数据结构辅助教程——前言

数据结构


开始之前

没更新博客两个星期了,大家有想我吗?

哈哈,自恋了一把哈,我又回来写东西了,是大家所期待的Android进阶教程来了么?
然而并不是哈~首先是小猪的逼格还不够,很多东西都还不会,或者说不是太熟悉,
这样写出来的东西肯定是误人子弟哈!而且依旧是项目经验不够哈,说下最近都在干嘛吧~
把《Android群英传》撸了一遍,然后昨天花了一下午撸了十三章《Android源码设计模式》,
然后往项目里加上一两个设计模式。大概什么原理知道,但加到项目里却不容易~
归根结底还是代码写得少...
嗯,把话题转回来,接下来的话,可能花2个月左右的时间撸一套数据结构的辅助教程...

:你要写数据结构数据结构数据结构?的教程?
:对的,我要写一套数据结构的辅助教程,是辅助教程,而非教材!辅助教程就是...

:不好好写Android进阶教程,写数据结构搞毛?数据结构能干嘛?咦,数据结构是什么鬼?
好像听过,对对对,大学好像有过这门课程,但是考完试就全忘了。不过出来工作这么久,
好像根本没有用到过这个东西吧?
:对的,数据结构和算法基本上是软件工程专业的必修课,想当年小猪上数据结构的课
基本都是睡过去的...然后临考试前临急抱下佛脚,61分勉勉强强考过哈,考完什么都不知了!
大部分的朋友都感觉数据结构很难,很复杂,一提到数据结构就头痛...但是数据结构又非常重要
但是去一些大的公司面试很多时候都会问到数据结构的问题,二叉树,红黑树等...卧槽,什么鬼...
尽管这门课程并不好学,但是假如想让自己的编程能力有质的飞跃,不在停留于调用现成的API,
而是追求更完美的实现,那么数据结构是你的必修课...

:你BB了那么久,能够举些例子来说明下数据结构和算法的重要性?
:可以,不过别打断我了...首先说下算法吧,算法可以理解为解决某个特定问题的方法吧,
一个问题可能有不同的解决方法,也可以说有不同的算法,而算法肯定是有优劣的,比如,让你计算:
1 + 2 + 3 + ... + 100,你会怎么做?

算法1:定义100个变量,分别赋1-100的值,然后一个个加起来...
思考:100个变量还好,假如1+...+1000呢?这代码量无法直视,我们肯定要想想其他的算法!

算法2:用一个for循环,循环100次,将和加上新的值:
for(int i = 1;i<=100;i++)sum += i;return sum;
思考:代码写少很多了,但是假如是加到一千万呢?循环一千万次么?我们还是得想想其他算法!

算法3:数学家高斯(不是超人高斯...)提出的:等差数列求和的算法
公式:和 = (第一项 + 最后一项) * 项数 / 2
把1和100代入得:sum = (1 + 100) * 100 / 2 = 5050,得出的就是结果,
而此时即使我们从1加到1千万,也只是走一步,由此看出算法的重要性了吧!

那么为什么一般我们都喜欢叫:数据结构和算法呢?数据结构和算法有什么关系么?
答:程序 = 数据结构 + 算法,数据结构和算法一样都是一种编程的思想,数据结构,
就是数据的结构啊,分析问题,从中提取出我们的操作对象,并且找出这些操作对象间
包含的关系等,就得出了我们所谓的数据结构,有点像我们面向对象中的抽象!
好吧,小结下,数据结构就是:采取何种结构对数据进行管理
算法无不依赖于具体的数据结构,数据结构直接关系到算法的选择以及效率!

Android中也少不了数据结构的影子,还记得我们的Activity栈么?还有Handler中的
MessageQueue(消息队列)么?


:...
:还想停!好的,说这么多就是想表达数据结构很重要,学了并不会没什么
卵用而已!下面细说下本教程的目标以及学习的一些要求,还有一些学习资料以及
网站的介绍!


本教程的点点

答:面试给人上了一课,突然感觉数据结构很重要;还有,帮助后来者,刚接触数据结构的
童鞋们一点点方向,不至于学完什么都不知道!大部分学校采用的教程应该是严蔚敏老师的
《数据结构(C语言版)》吧,而讲数据结构课程的一般也是老教授吧,这也是为何上数据结构
课会昏昏欲睡的大部分原因,写这套教程的目标就是想让大家有目的性地去学数据结构!
不至于学完什么都不会,当然也会挑1,2个经典的例子进行讲解!别把这个当教程,你可以
把本套教程理解成《数据结构的食用说明书》,这里没有形象生动的例子,只有精致的学习
路线图和简单的代码实现以及详细的注释!建议还是入手基本数据结构相关的数据或者视频吧!


最后的一些碎碎念

小猪毕竟不是以为专业的算法选手,写本套教程的原因也说了,自己想过一遍数据结构
又想为后来者做一点记录;假如教程中有写错或者纰漏的地方,望读者海涵,也希望读者
朋友能将发现的问题及时向我反馈,感激不尽!谢谢~
又想交流或者学习的朋友可加群:【小猪数据结构交流群】
小猪是菜猪,求算法大神们别调戏~只是有一颗分享的心罢了,当然也欢迎大牛进群指点~
至于教程看具体情况,正常情况一周会更新2-3篇!当然重心还是会放在Android上的~
嗯,就说这么多,谢谢~

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注