`
leichenlei
  • 浏览: 124596 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

android真机调试

http://www.apkbus.com/android-44926-1-1.html
基数排序是根据个位、十位......排序的方式,最好可达O(n)。 本例通过余数获得位上数字的方法效率太低。   public static int[] data = {3,7,8,0,9,5,4,1,6,2}; public static void sort(int[] number, int d) { int k=0; int n=1; int m=1;//控制键值排序依据在哪一位 int[][] temp = new int[number.length][number.length]; int[] order = new int[number.l ...
快速排序的原理就是以递归的方式进行划分   划分:从数组中选择一个数作为枢纽,将数组划分成两部分,一部分小于枢纽,一部分大于枢纽   这里列举三种快速排序,第一种是基本的快速排序。第二种优化枢纽选择方式,第三种优化长度较小数组的排序为插入排序。   一、选择最右为中枢的快速排序 步骤: 1,选择最右一个为枢纽。 2,划分整个数组。数组变成:[比枢纽小,...,枢纽,比枢纽大,...] 3,比枢纽小的部分递归1,2。 4,比枢纽大的部分递归1,2。       public static int[] data = {3,7,8,0,9,5,4,1,6,2}; ...
最近学到希尔排序,感觉理解非常费劲。下面是自己总结的希尔排序,希望自己以后不要忘了。嘿嘿。希尔排序其实是高级插入排序,所以学习希尔排序之前需要了解插入排序。   一、希尔排序过程: 1,首先根据公式h = h*3 + 1,递归求出h的值;即让h=1,一直递归到h < length结束,得到h。 例如:长度是10的数组,h = 4。 2,公式递减地进行插入排序 for(按公式递减间隔){ //开始插入排序过程  for(从第二个间隔位置;到末尾;+1){   for(从第二个间隔位置;>=0; -=间隔)  } } 例如:3,7,8,0,9,5,4,1,6,2 ...
用到递归、合并,所以叫归并。 public static int[] data = {3,7,8,0,9,5,4,1,6,2}; /** * 递归 * @param temp 临时数组 * @param sIndex 开始索引 * @param eIndex 结束索引 */ private static void recursion(int[] temp, int sIndex, int eIndex){ if(sIndex == eIndex){ return ; }else{ int oneEnd = (sIndex + ...
最近在做新项目,需要计算预先配置的表达式的结果。 表达式特点: 1,浮点类型 2,代变量参数 3,只限于简单计算符号 表达式类似于:"3*(4+a)/6" 程序: import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; /** * * @author chenlei * @2013-1-16 */ public class Formu ...
 冒泡排序  public static int[] data = {3,7,8,0,9,5,4,1,6,2}; public static void main(String[] args) { int len = data.length; System.out.println(Arrays.toString(data)); for(int i = 0; i < len - 1; i++){ for(int j = i + 1; j < len; j++){ if(data[i] > data[j]){ swap ...
基础 一个安卓应用有一个不同linux用户和用户id,应用的所有文件都只有这个用户可以访问。 一个安卓应用有一个虚拟机实例(一个进程)。   可以两个应用使用一个用户,也可以两个应用运行在一个进程。   所有应用可以访问硬件资源,但是必须在安装时被需求。   四大组件 Activities活动:一个界面。 services服务:一个后台组件 content providers内容提供者:和存储有关 broadcast receivers广播接受者:一般是接收、处理系统的广播   调用startActivity或者startActivityForResult(),传递一 ...
1,activity貌似是一个显示页的东西。   打开软件第一个activity(main activity)在AndroidManifest.xml中这样写: <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> < ...
  一个集合 - 也叫容器 - 是将多个元素组装成一个单元的简单对象。集合被用来存储、检索、操纵、传送多个数据。尤其是,它用自然组表示数据集合,像一副扑克牌、一个邮件夹、一个电话薄。 1.1 什么是集合框架 集合框架是表示集合和操纵集合的统一结构。所有的集合框架包含: 接口 :代表集合的抽象数据类型。接口允许集合有统一的操作,而不用考虑细节。在面向对象语言中,通常用接口形成层次结构。 实现 :接口的具体实现。本质上,也是可重用的数据结构。 算法 :实现了集合接口的对象的、例如,搜索和排序等执行有效计算的方法。算法是多态的: ...
到目前,这课程从一开就集中在java 平台的部分低级API 。这些API 适合于适合于非常基础的任务,但是高级构建需要更高级的任务。特别是在今天充分利用多核心系统上的并发应用。 在这一章,我们将考虑5.0 版本的java 平台引进的一些高级并发特点的。大多数特性是在java.util.concurrent 包下实现的。在Java 集合框架中也有新的并发数据结构。 l  Lock 对象支持的锁方案简化了并发应用。 l  Executors 定义了一个创建和管理线程的高级API 。Executor 实现在java.util.concu ...
如果一个对象在构造之后不可改变,那么这个对象就是不可变对象。不可变对象被广泛认同的作用是建立简单、可靠代码的万全之策。     不可变对象在并发应用程序中特别有用,因为他们不能被修改,他们不能发生线程冲突 ...
线程必须经常协调他们的活动。最普通的协调方法是保护块(guarded block)。以循环条件开始的代码块必须在循环条件为真时代码块才能够执行。为了正确操作有许多步骤需要遵守。 假设,比如 guardedJoy方法直到共享变量joy被另一个线程修改才会执行。理论上,这个方法一直在循环直到满足条件,但是这个循环很浪费,因为它在等待的时候不停的在运行。 public void guardedJoy() { // Simple loop guard. Wastes // processor time. Don't do this! while(!joy) {} System.out.pri ...
四、活性 (一) 死锁 一个并发应用的即使执行能力叫做它的活性。这章描述了很多一般类型的活性问题,死锁,然后简单的描述了另两个问题,饥饿和活锁。 死锁就是俩个或多个线程互相等待造成永远被阻塞的状况。这里有一 ...
三、同步 线程通信首先通过共同访问一个字段、对象的字段。这种形式的通信是非常有效的。但是会产生两种错误:线程冲突和内存一致性错误。需要用Synchronization工具避免这些错误。 l  线程冲突:描述了当多个线程访问共 ...
Global site tag (gtag.js) - Google Analytics