摘要:今天看了一下JDK里面的二分法是实现,觉得有点小问题。二分法的实现有多种今天就给大家分享两种。一种是递归方式的,一种是非递归方式的。先来看看一些基础的东西。1、算法概念。二分查找算法也称为折半搜索、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。请注意这种算法是建立在有序数组基础上的。2、算法思想。①搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;②如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。③如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。3、实现思路
阅读全文
摘要:对于这个问题并不是一件容易的事,但是如果你掌握了基本的原理其实很简单。依我的习惯还是先复习一些相关的知识,这样可以保证你在阅读过程中没有阻碍。【复习或者预习部分 Begin 】先看看官方文档,其中Dev Guide -->User Interface -->How Android Draws Views. 具体文档内容如下(当然你可以直接在官方上看,刚刚网上找链接的时候发现改版了,自己找找吧,我用的是离线的):When an Activity receives focus, it will be requested to draw its layout. The Android f
阅读全文
摘要:基于Android开发应用时,可能会时常出现Out Of Memory异常。在被这个问题困扰的时候先得了解一下原因,重点当然是需要知道如何处理。1、OOM的具体原因。①一个进程的内存可以由2个部门组成:java使用内存 ,C使用内存 ,这两个内存的和必需小于16M,不然就会出现各人熟悉的OOM。②一旦内存分配给Java后,以后这块内存纵然开释后,也只能给Java的使用,这个估计跟java虚拟机里把内存分成好几块进行缓存的原因有关,反正C就别想用到这块的内存了,所以要是Java突然占用了一个大块内存,纵然很快开释了,C能使用的内存= 16M - Java某一瞬间占在的最大内存。③而Bitmap的
阅读全文
摘要:转载请注明http://www.cnblogs.com/vanezkw/archive/2012/06/25/2561393.html相信很多朋友在使用第三方包时都遇到过此类问题。今天就此问题进行一些说明。如果方法有用请不要吝啬你的评论。1、问题的出现的原因。要想解决这个问题,那么先得清楚为什么会出现这个问题。因为在android设备上只有android的标准库,而没有你加入的第三方jar包。2、如何处理。①那么解决的办法就是把第三方的jar包打包入apk中,如果你在eclipse下进行开发,那么就可以build path --> add external archives . 那么你生
阅读全文
摘要:1、算法概念。每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。2、算法思想。 假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i=n为止,依次将R[i]插入当前的有序区R[1..i-1]中,生成含n个记录的有序区。3、实现思路。①用一个临时变量temp存储第i个元素(i>=1,下标从0开始)。②比较R[i] 和R[i+1],如果R[i+1].compareTo(R[i])<0,则R[i+1] = R[i],即比R[i+1]的集合元素依次往右移动一个单位。③将temp的值赋给R[i].4、实
阅读全文
摘要:网上关于快速排序的算法原理和算法实现都比较多,不过java是实现并不多,而且部分实现很难理解,和思路有点不搭调。所以整理了这篇文章。如果有不妥之处还请建议。首先先复习一些基础。1、算法概念。快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。2、算法思想。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。3、实现思路。①以第一个关键字 K 1 为控制字,将 [K 1 ,K 2 ,…,K n ] 分
阅读全文