
算法
lizhongkan
这个作者很懒,什么都没留下…
展开
-
飞机环绕地球
问题:每台飞机只有一个油罐,飞机间可在飞行时相互加油。每罐油可使得飞机飞行1/2个地球圈。为使一台飞机环绕地球一周,现知道需要三架飞机,请给出飞行方案? 解决办法: *把另外两架飞机看作辅助加油飞机。 *辅助飞机给主机加油后返回机场;它们可以正向出发,也可以反向出发。 1、三架飞机同时起飞,飞行1/8路程后,辅助飞机A用去了1/4的机油,此时把1/2的机油平均分给另外原创 2009-10-18 10:36:00 · 1196 阅读 · 0 评论 -
创新工场笔试
考了三道题。 佩服李开复老师的省钱本事:考试直接发白纸,连印刷费也省了,试题直接用投影仪显示在讲台屏幕上。 三道题,看着不难,所以我就现在先在稿纸上把程序基本都写出来,最后剩近二十分钟,才匆忙开始抄写到答题纸上。 失策: 1、最后二十分钟抄写程序,比较匆忙,导致抄写过程完全是机械式的,来不及重新思考或检查。有点浪费了二十分钟去抄写程序的遗憾。 改正:在稿纸上,基本原创 2009-10-21 14:02:00 · 3520 阅读 · 0 评论 -
关于位异或运算的妙用
上一篇日志谈到了位操作。 关于位操作符:(1)、~ 取反 ~0011 = 1100(2)、& 位与 0011 & 0110 = 0010(3)、| 位或 0011 | 0110 = 0111(4)、^ 异或 0011 ^ 0110 = 0101 有两道题关于位异或(^)运算的妙用:一、已知长度为2n+1的数组,数组中每个数都出现两次,原创 2009-10-21 21:28:00 · 1203 阅读 · 0 评论 -
可求最小值的栈
题目: 实现一个栈,它有三个操作。 1、压栈push。 2、出栈pop。 3、找出当前栈的最小元素。 要求:这三个操作的时间复杂度是O(1)。 解: 使用两个数组(或链表),element和least,它们的大小一致。element数组用来存放压栈和出栈的元素;least数组用来存放当前栈中最小值的下标。 1、push操作。把需要压栈的元素A放进elemen原创 2009-10-23 08:30:00 · 1947 阅读 · 0 评论 -
排序算法(1) —— 直接插入排序及其改进
参考文章: http://blog.youkuaiyun.com/yexinghai/archive/2009/10/10/4649923.aspx该文章对插入排序的算法,是错误的。 直接插入排序原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,最终将所有无序区元素都移动到有序区完成排序。要点:设立哨兵,作为临时存储和判断数组边界之用。原创 2009-10-23 21:17:00 · 1161 阅读 · 0 评论 -
求数组第k小的元素 要求复杂度在O(n)
http://user.qzone.qq.com/380171063/blog/1257414387 通常情况下,这个比快速排序要高效: 因为快速排序要同时处理被分割的2段, 而此方法只需要处理一段; */原理类似与quicksort,都是分治。不同在与,FindKthNumMax()只需要对其中一个分组进行递归 该方法最坏复杂度为O(n^2), 但是平均复转载 2009-11-05 21:58:00 · 2091 阅读 · 0 评论 -
关于24点算法的思想和代码实现
http://chimf.bloghome.cn/posts/49570.html 先简单介绍一下24点游戏:给出4个1-9之间的自然数,其中每个数字只能使用一次;任意使用 + - * / ( ) ,构造出一个表达式,使得最终结果为24,这就是常见的算24点的游戏。比如两道比较经典的题目:1,5,5,5和3,3,8,8,先自己试试,答案贴在文章最后^_^此文所贴代码均为面向过程的C(++)转载 2009-10-30 09:41:00 · 7641 阅读 · 4 评论 -
有意思的两个值作为主键
有一个表,需要两个字段date和platform作为主键。于是我把这两个字段封装成一个对象,并重写等于、小于运算符或hash值(实际没有重写成功,用的是Python),才能够将对象作为dict(字典)的key。 刚接触Python,没能实现我想要的代码。 冥思苦想之际,得人指点:废那劲干嘛,直接把这两个值用字符串连接在一起作为一个值,就可以作为dict的key了。原创 2009-11-06 21:42:00 · 1364 阅读 · 0 评论 -
快速排序算法
参考资料:http://baike.baidu.com/view/19016.html?fromTaglist 基本思想 快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据转载 2009-11-08 13:57:00 · 619 阅读 · 0 评论