摘要: 冒泡排序,就是每次遍历都会把最小(或者最大)的数放在前面。比如要升序{A1,........An} 第一次排序要取出整个数组中最小放在A1的位置,从An开始往前遍历,相邻两个数比较,如果Aj num; num1--){ if(arrays[num1] < arrays[num1-1]){ int temp = arrays[num1]; arrays[num1] = arrays[num1-1]; arrays[num1-1] = temp; ... 阅读全文
posted @ 2014-03-13 17:42 huliangbin 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 上篇blog中介绍的直接插入排序,希尔排序就是对直接插入排序的一个优化。比如有这么一种情况:对一个无序数组进行从小到大的排序,但是数组的最后一个位置的数是最小的,我们要把它挪到第一个位置,其他位置的都要往后移动,要是这个数组非常大,那么直接插入排序的开销就非常大。 现在有一个array,希尔排序就是设定一个增量incrementNum(0=1){ for(int i=0;iarrays[j+incrementNum]){ int temple = arrays[j]; arr... 阅读全文
posted @ 2014-03-13 17:19 huliangbin 阅读(14935) 评论(3) 推荐(1) 编辑
摘要: 这几天看排序算法,网上大多数排序算法的解释都是“过于专业”,导致一时半会看不明白到底在说什么玩意。现在总结下几大排序算法(java实现)1.直接插入排序说的简单点,就是一组无序序列{A1,A2,........An} 先取出A1,然后从A2与A1比较,比较完之后序列状况是{A1,A2}{A3..........An}, 其中{A1,A2}有序, 然后取出A3 ,放到{A1,A2}有序序列合适位置,导致{A1,A2,A3}{A4........An}。重复这个过程,直到取出An放入{A1,A2........An-1}有序序列中。java实现代码如下(利用LinkedList作为辅助序列) .. 阅读全文
posted @ 2014-03-13 00:39 huliangbin 阅读(2507) 评论(1) 推荐(1) 编辑
摘要: 由于AsyncTask内部是使用线程池(ThreadPoolExecutor)来管理要处理的任务的,所以AsyncTask的弊端就非常明确了:要extcute的任务数量超过线程池最大容量时,必然会报错,导致FC。还有重要的一点就是,假如你需要立即执行一个网络请求获取数据,执行asynctask.execute()时,asynctask的doInBackground可能无法马上执行。原因是因为用线程池管理,而线程池有一定数量的核心线程(android2.3之前是5,android2.3之后是1),这些线程是可以马上运行的。还有一定数量的线程放在缓冲队列里,等有核心线程执行完毕之后再执行这些线.. 阅读全文
posted @ 2014-02-19 18:48 huliangbin 阅读(1021) 评论(0) 推荐(0) 编辑
摘要: android 的Tween动画并不会改变控件的属性值,比如以下测试片段:定义一个从屏幕右边进入,滚动到屏幕左边消失的一个TranslateAnimation动画: 在activity里面设置某个TextView的动画,并且另起一个线程每隔一秒获取textView的坐标:public class Activity1 extends Activity { private TextView textView; private Animation animation; private int location[] = new int[2]; private boolea... 阅读全文
posted @ 2014-02-18 21:16 huliangbin 阅读(4152) 评论(0) 推荐(0) 编辑
摘要: 今天面试的时候被问到android的内存管理机制,答上来了但是语言组织有问题,从网上摘了资料,组织组织。Linux的空闲内存通常都很少,这是因为无论物理内存有多大,linux都将其充分利用了。把程序调用过的硬盘里的数据放到内存,利用内存读写的高速特性来提高linux系统的数据访问性能。而windows是只有在需要内存的时候才会给应用程序分配内存。也就是说,我们给电脑装上了一块内存,linux能有效的把这块内存进行利用,但是windows如果之前的内存足够,就不会利用这块内存。Android上java编写的应用,一个应用进程对应一个DVM虚拟机进程。也就是说,打开一个应用就会打开一个虚拟机进程。 阅读全文
posted @ 2014-02-18 19:51 huliangbin 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 首先自定义一个继承自SurfaceView并且实现了SurfaceHolder.Callback接口的组件:public class CameraView extends SurfaceView implements Callback { private SurfaceHolder surfaceHolder; private Camera mCamera; public CameraView(Context context, AttributeSet attrs) { super(context, attrs); } public void ini... 阅读全文
posted @ 2014-02-11 02:33 huliangbin 阅读(15806) 评论(0) 推荐(0) 编辑