查看: 11022|回复: 48

【案例讨论】原来算法这么简单:《啊哈!算法》有奖试读(已公布获奖)

[复制链接]
认证徽章
论坛徽章:
127
茶鸡蛋
日期:2012-01-16 14:24:41鲜花蛋
日期:2012-06-06 14:48:18双黄蛋
日期:2013-01-07 21:07:482013年新春福章
日期:2013-02-25 14:51:24优秀写手
日期:2013-12-18 09:29:082014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08马上加薪
日期:2014-03-18 09:57:11马上有车
日期:2014-03-20 16:13:24马上有房
日期:2014-03-20 16:14:11
发表于 2014-6-19 12:32 | 显示全部楼层 |阅读模式

在我们生活的这个世界中到处都是被排序过的东东。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序......总之,很多东东都需要排序,可以说排序无处不在。


我们在吃桶装薯片的时候,要想吃掉最后一片,就必须把前面的全部吃完;再比如浏览网页的时候需要退回到之前的某个网页,我们需要一步步地点击后退键。还有手枪的弹夹,在装子弹的时候,最后装入的那发子弹,是被第一个打出去的,这就是栈的原理。与栈不同的是队列,比如我们买票的时候,每个排队买票的窗口就是一个队列,站在前面的人先买到票,我们称之为“先进先出”的原则。本期话题我们重点聊聊算法那些最核心的话题。

本期话题:

1.排序的算法有很多,冒泡排序、计数排序、插入排序、归并排序和堆排序等,请问这些主流算法的思路是怎样的?各有什么优缺点?请结合应用场景谈谈您的看法。

2.栈和队列有哪些区别?它们有哪些作用?适用于哪些应用?

3.请谈谈您对深度优先搜索法和广度优先搜索法这两种算法的理解,可以举例说明。

4.说说读完试读章节后您的感想。


活动时间:2014.6.19-2014.7.19

活动奖励:针对以上任意一个问题跟帖回答,我们会在讨论结束后,随机抽选5名网友赠送《啊哈!算法》作为奖励。

图书简介:

啊哈!算法-新效果图.jpg

书名:啊哈!算法

作者:网名啊哈磊

摘要:这不过是一本有趣的算法书而已。和别的算法书比较,如果硬要说它有什么特点的话,那就是你能看懂它。 这是一本充满智慧和趣味的算法入门书。没有枯燥的描述,没有难懂的公式,一切以实际应用为出发点, 通过幽默的语言配以可爱的插图来讲解算法。你更像是在阅读一个个轻松的小故事或是在玩一把趣味解谜 游戏,在轻松愉悦中便掌握算法精髓,感受算法之美。


本书中涉及到的数据结构有栈、队列、链表、树、并查集、堆和图等;涉及到的算法有排序、枚举、 深度和广度优先搜索、图的遍历,当然还有图论中不可以缺少的四种最短路径算法、两种最小生成树算法、 割点与割边算法、二分图的最大匹配算法等。


   作者简介:曾在中科院玩过单片机。武汉大学历史上第一位以本科生身份加入MSRA(微软亚洲研究院)的小伙伴,在机器学习组从事搜索引擎方面的研究。

样章试读地址:http://www.ituring.com.cn/book/1430

购买地址:http://product.china-pub.com/3770208


获奖公布:

陌路巨额投入

hawk_2014

sunny1889

jboracle1981

alexkidder


论坛徽章:
401
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
发表于 2014-6-19 12:48 来自手机 | 显示全部楼层
不错啊

使用道具 举报

回复
认证徽章
论坛徽章:
111
ITPUB9周年纪念徽章
日期:2010-10-08 09:34:03马上有房
日期:2014-02-18 16:42:02马上有车
日期:2014-03-20 10:09:22马上有钱
日期:2014-03-20 15:53:11马上有车
日期:2014-03-20 16:13:24马上有房
日期:2014-03-20 16:14:11马上有钱
日期:2014-03-20 16:14:11马上有对象
日期:2014-03-20 16:14:11马上加薪
日期:2014-03-20 16:14:11技术图书徽章
日期:2014-03-27 09:30:56
发表于 2014-6-19 12:57 | 显示全部楼层
路过支持,占座

使用道具 举报

回复
认证徽章
论坛徽章:
490
红宝石
日期:2014-04-05 19:53:18海蓝宝石
日期:2014-04-05 21:24:30数据库板块每日发贴之星
日期:2013-05-27 22:53:45生肖徽章:鸡
日期:2014-08-24 18:39:29青年奥林匹克运动会-羽毛球
日期:2014-09-24 08:37:59马上有房
日期:2015-01-03 10:23:28喜羊羊
日期:2015-03-04 14:54:422015年新春福章
日期:2015-03-06 11:59:47秀才
日期:2017-04-06 18:09:28版主6段
日期:2014-05-27 02:19:57
发表于 2014-6-19 13:10 | 显示全部楼层
好书

使用道具 举报

回复
论坛徽章:
66
林肯
日期:2013-09-12 15:57:33马自达
日期:2013-10-11 13:52:31路虎
日期:2014-01-26 14:35:49三菱
日期:2013-11-25 11:21:19现代
日期:2013-08-29 14:39:50雪佛兰
日期:2013-09-12 15:55:00一汽
日期:2013-11-28 14:15:05技术图书徽章
日期:2013-12-11 10:10:51技术图书徽章
日期:2013-12-11 10:11:35技术图书徽章
日期:2014-01-14 10:54:13
发表于 2014-6-19 13:20 | 显示全部楼层
好书!占位

使用道具 举报

回复
求职 : 数据库管理员
招聘 : Java研发
认证徽章
论坛徽章:
6348
ITPUB9周年纪念徽章
日期:2014-05-02 10:36:402011新春纪念徽章
日期:2014-12-29 12:11:142010广州亚运会纪念徽章:卡巴迪
日期:2014-08-06 08:44:252012新春纪念徽章
日期:2014-12-29 12:11:142013年新春福章
日期:2014-12-29 12:11:14马上有车
日期:2014-12-29 12:11:14马上有房
日期:2014-12-29 12:11:14马上有钱
日期:2014-12-29 12:11:14马上有对象
日期:2014-12-29 12:11:14马上加薪
日期:2014-12-29 12:11:14
发表于 2014-6-19 13:29 | 显示全部楼层
good book ~~~

使用道具 举报

回复
论坛徽章:
22
林肯
日期:2013-10-25 08:53:562014年世界杯参赛球队: 澳大利亚
日期:2014-05-26 09:13:482014年世界杯参赛球队: 阿尔及利亚
日期:2014-05-28 10:46:58喜羊羊
日期:2015-03-04 14:54:422015年新春福章
日期:2015-03-06 11:59:47懒羊羊
日期:2015-06-16 10:25:42双鱼座
日期:2015-07-30 08:48:43白羊座
日期:2015-08-05 20:05:55天蝎座
日期:2015-08-07 22:32:03马上有车
日期:2014-05-07 11:14:31
发表于 2014-6-19 13:57 | 显示全部楼层

本期话题:

1.排序的算法有很多,冒泡排序、计数排序、插入排序、归并排序和堆排序等,请问这些主流算法的思路是怎样的?各有什么优缺点?请结合应用场景谈谈您的看法。

冒泡排序:相邻2个数据比较,大的往前排,需遍历n-1次;

计数排序:查询每个数据在所有数据中的排名,插入到对应的名次的地方;

插入排序:相邻2个数据比较,大的往前排,大的再与前一个比较,再大再往前排,直到所有数都遍历到;

归并排序:把数据分2段,第一段的第一个开始和第二段比较,小的放另外一个段中,再把剩下的直接放到段后面;

堆排序:取堆中最大或最小值放另外一个堆,重置堆,再继续,直到重置后的堆无数据;

2.栈和队列有哪些区别?它们有哪些作用?适用于哪些应用?

栈是后进先出,队列是先进先出;

3.请谈谈您对深度优先搜索法和广度优先搜索法这两种算法的理解,可以举例说明。

深度优先:爷爷一旦找到某个儿子后,直接找这个儿子的孙子;

广度优先:爷爷找到所有儿子后,再找每个儿子的孙子;

4.说说读完试读章节后您的感想。



使用道具 举报

回复
认证徽章
论坛徽章:
39
2014年世界杯参赛球队: 英格兰
日期:2014-06-13 14:40:022013数据库大会纪念章
日期:2015-03-18 10:16:212014数据库大会纪念章
日期:2015-03-18 10:16:21秀才
日期:2015-06-24 13:05:36秀才
日期:2015-07-30 16:18:26秀才
日期:2015-08-06 13:55:21秀才
日期:2015-08-13 13:38:45知识
日期:2015-08-13 14:08:10秀才
日期:2015-08-24 09:48:07秀才
日期:2015-09-10 17:13:35
发表于 2014-6-19 14:32 | 显示全部楼层

好书 支持支持

使用道具 举报

回复
认证徽章
论坛徽章:
39
2014年世界杯参赛球队: 英格兰
日期:2014-06-13 14:40:022013数据库大会纪念章
日期:2015-03-18 10:16:212014数据库大会纪念章
日期:2015-03-18 10:16:21秀才
日期:2015-06-24 13:05:36秀才
日期:2015-07-30 16:18:26秀才
日期:2015-08-06 13:55:21秀才
日期:2015-08-13 13:38:45知识
日期:2015-08-13 14:08:10秀才
日期:2015-08-24 09:48:07秀才
日期:2015-09-10 17:13:35
发表于 2014-6-19 14:47 | 显示全部楼层
2.栈和队列有哪些区别?它们有哪些作用?适用于哪些应用?
   
  区别:
       1.人所周知的队列先进先出,栈先进后出。
       2.对插入和删除操作的"限定"。 栈是限定只能在表的一端进行插入和删除操作的线性表。队列是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。
       3. 从"数据结构"的角度看,它们都是线性结构,即数据元素之间的关系相同。但它们是完全不同的数据类型。
       4.遍历数据速度不同。栈只能从头部取数据 也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前的一致性。。
队列则不同,基于地址指针进行遍历,而且可以从头或尾部开始遍历,但不能同时遍历,无需开辟临时空间,因为在遍历的过程中不影像数据结构,速度要快的多。。。
       5.栈是限定只能在表的一端进行插入和删除操作的线性表。队列是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。

作用:
   
    栈和队列是在程序设计中被广泛使用的两种线性数据结构, 它们可以保存程序运行路径中各个点的信息,以便用于回溯操作或其他需要访问已经访问过的节点信息的操作。
    比如: 栈用于解决迷宫问题,就是用到了若线路不通,需要回溯到已访问过的结点,从那个结点再做一次与这次路径不同的选择。还有先进后出 和 先进先出的 次序
比如: 利用栈的先进后出可以解决进制转化问题 ,即:先将个位余数进栈,再将十位余数进栈,然后百位,千位 等 ,这样出栈的时候顺序就成了反序出栈,即:先千位,百位,然后十位,最后个位。这些都很有利于我们处理一些数据,这些都是栈和队列的作用。。。

  应用:
       队列先进先出,栈先进后出的特点在实际中很多地方都会用到。比如:铁路调度中用到栈,民航机票订购中用到队列。

使用道具 举报

回复
认证徽章
论坛徽章:
91
秀才
日期:2015-11-02 11:24:03秀才
日期:2017-12-12 10:00:50秀才
日期:2017-09-18 17:34:47秀才
日期:2017-09-18 17:02:592017金鸡报晓
日期:2017-02-08 14:09:132017金鸡报晓
日期:2017-01-10 15:39:05秀才
日期:2016-12-21 16:55:07ITPUB15周年纪念
日期:2016-10-06 10:54:102016猴年福章
日期:2016-02-23 09:58:342016猴年福章
日期:2016-02-18 09:31:30
发表于 2014-6-19 16:33 | 显示全部楼层
好书

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表