
坐在马桶学算法
Chuck_lee
网站分析-hadooper-pythoner
展开
-
坐在马桶上学算法@排序总结:小哼买书
之前讲了三种常用的经典排序。排序算法还有很多,例如选择排序、计数排序、基数排序、插入排序、归并排序和堆排序等等。堆排序是基于二叉树的排序,以后再说吧。先分享一个超酷的排序算法的视频。 再来看一个具体的例子《小哼买书》来看看三个排序在应用上的区别和局限性。 小哼的学校要建立一个图书角,老师派小哼去找一些同学做调查,看看同学们都喜欢读哪些书。小哼让每个同转载 2014-04-23 17:27:29 · 1079 阅读 · 0 评论 -
最快最简单的排序——桶排序
最快最简单的排序——桶排序 在我们生活的这个世界中到处都是被排序过的。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东西都需要排序,可以说排序是无处不在。现在我们举个具体的例子来介绍一下排序算法。 首先出场的我们的主人公小哼,上面这个可爱的娃就是啦。期末考试转载 2014-04-23 17:16:38 · 682 阅读 · 0 评论 -
邻居好说话:冒泡排序
简化版的桶排序不仅仅有上一节所遗留的问题,更要命的是:它非常浪费空间!例如需要排序数的范围是0~2100000000之间,那你则需要申请2100000001个变量,也就是说要写成int a[2100000001]。因为我们需要用2100000001个“桶”来存储0~2100000000之间每一个数出现的次数。即便只给你5个数进行排序(例如这5个数是1,1912345678,2100000000,1转载 2014-04-23 17:18:41 · 574 阅读 · 0 评论 -
坐在马桶上学算法@队列——解密QQ号
新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问QQ号,小哈当然不会直接告诉小哼啦,原因嘛你懂的。所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则。规则是这样的:首先将第1个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除并将第4个数再放到这串数的末尾,再将第5个数删除……直到剩下最后一个数,将最后一个数也删除。按照刚才删除的顺序,把这些删除的数连在一转载 2014-04-23 17:31:59 · 869 阅读 · 0 评论 -
坐在马桶上学算法@最常用的排序——快速排序
上一节的冒泡排序可以说是我们学习第一个真正的排序算法,并且解决了桶排序浪费空间的问题,但在算法的执行效率上却牺牲了很多,它的时间复杂度达到了O(N2)。假如我们的计算机每秒钟可以运行10亿次,那么对1亿个数进行排序,桶排序则只需要0.1秒,而冒泡排序则需要1千万秒,达到115天之久,是不是很吓人。那有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。转载 2014-04-23 17:24:07 · 1374 阅读 · 0 评论 -
A/B 向上取整的方法
1. 问题 A,B都是整数并且 A>1, B>1 求 ┌ A/B ┐ 即 A/B 的上取整。 当 A/B 整除,往上取整返回值 为 A/B。 当 不整除,返回值是 int(A/B) + 1 这个算法的一个应用:如果你有一个动态增长的缓冲区,增长的步长是 B, 某一次缓冲区申请的大小是 A,这个时候,就可以用这个算法,计算出缓冲区的一个合原创 2015-02-06 15:02:15 · 2132 阅读 · 0 评论