数据结构与算法
--- by liangbin
谨以此篇开启数据结构与算法的重新学习之门。
什么是数据结构
数据结构是什么呢?在我看来,数据结构是数据组织的方式,为我们操作数据提供便捷。
通常的数据操作包括:增、删、改、查。
不同的需求产生了不同数据结构。通常的需求包括:数据规模、数据操作方式、性能。
就好像图书馆管理员如何把各种图书进行整理、组织,以便读者阅读、也方便自己管理。
也好像自己的东西如何整理好,才能避免在某个时刻心烦意乱地翻找那本书,那把剪刀,那副眼镜。
什么是算法
在我看来,算法就是如何利用现有的数据结构满足数据操作需求的方法。
比如:坐公交/地铁从北邮到中关村,分别有几种不同要求:路程最短;时间最短;换乘最少;坐着到站的概率最大;风景最好;遇到的人最少;遇到的美女最多。这就是算法。
数据结构与算法
数据结构与算法相互配合才能发挥出无与伦比的威力。借用游戏界广为流传的一句话:不怕神一般的对手,就怕猪一样的队友。充分说明了配合的重要性。
要是数据结构很好,而算法很白的话,数据结构也只有黯然销魂了:小明要找一本《数据结构》,图书馆里分类专业、每个类别按A-Z顺序排列整齐,于是他从图书馆进门开始一本一本的找,从儿童书籍到法律到高中教辅到。。。,4个小时过去了,终于找到了,到了管理员那里去炫耀,“看,昨天我同学找了一天都没有找到,我用了4个小时就找到了”,管理员当场晕倒,因为他不懂他苦心整理的书籍怎么会用一天的时间还找不到一本书;
要是数据结构很烂的话,算法一看肯定心里无限惆怅+发飙:要我10分钟内在垃圾场里找到你丢失的那枚一毛钱硬币,你以为我是神啊。
接下来,我将重新学习、膜拜各种神界、牛界、鸟界、虾界的先辈们遗留下各种数据结构与算法,完成从巨人的脚底爬到他的肩膀上的过程。
也欢迎大家不吝指教、分享、评论。
PS: 神界:大神。牛界:大牛。鸟界:大鸟、老鸟。虾界:大虾。