04 2016 档案

摘要:前言: 前面所讲的排序算法基本都是需要进行两个数依次比较,这种两个数依次比较的算法不依赖于数组重元素的特性并且有下界Ω(nlogn)。换句话说就是使用比较排序算法最快的时间消耗没法小于这个界。那么是不是我们永远没法跨越这个梗呢?答案当然不是,当数组中的元素有一定的特点的时候,我们就可以利用这个特定, 阅读全文
posted @ 2016-04-16 14:46 Secondworld 阅读(453) 评论(0) 推荐(1)
摘要:前言 这个问题来自于看到的一个面试题,其中的解题过程比较有趣,有很多值得借鉴的地方,这里写出来作为记录。 题目 假设一栋100层的楼,两个完全一样的鸡蛋。存在某一层N,当鸡蛋从大于或等于N的楼层落下时会碎掉,当鸡蛋从小于N层落下时不会碎。问用两个鸡蛋找到N的最佳方案,以及此时最坏情况下需要实验几次。 阅读全文
posted @ 2016-04-13 23:42 Secondworld 阅读(361) 评论(0) 推荐(0)
摘要:前言 前面差不多学习了插入排序、选择排序、冒泡排序、归并排序。这些排序除了归并排序在时间上消耗为:θ(nlgn)外,其余排序时间消耗都为:θ(n2). 接下来要讲的就是两种比较优雅的比较排序算法:堆排序和快速排序。 堆排序最坏情况下可以达到上界:ο(nlgn).快速排序平均情况下可以达到:θ(nlg 阅读全文
posted @ 2016-04-13 23:16 Secondworld 阅读(4793) 评论(0) 推荐(0)
摘要:前言: 上一节刚讲过归并算法是排序算法中比较少见的一种时间复杂度为:θ(nlgn)的算法。而归并算法之所以快的原因在于它用了分治的思想,现实生活中有很多需要用到分治思想解决的问题,下面就举两个例子。 问题一: 给定一个整数数组和任意整数,找到数组中是否有两数的和等于给定的整数。 这个问题如果采用穷举 阅读全文
posted @ 2016-04-09 19:01 Secondworld 阅读(345) 评论(0) 推荐(0)
摘要:前言: 排序算法应该算是算法入门级的东西了,这里重新学习算法,先暂时归纳下个人对两种算法的理解。 插入排序: 插入排序可以对应到现实生活中的排队去停车场停车的场景。假设某家饭店的饭菜十分好吃(流口水),导致来这里吃饭的人特别多,后面来吃饭准备停车的车排起了长队。每次只允许一辆车过去找位置,找到位置之 阅读全文
posted @ 2016-04-02 22:29 Secondworld 阅读(1063) 评论(0) 推荐(0)
摘要:Android起源与发展: Android操作系统最初在2003年的时候由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apach 阅读全文
posted @ 2016-04-02 19:30 Secondworld 阅读(524) 评论(0) 推荐(0)