基数排序 java 算法
package sort;
public class RadixSort {
// 求x 数第d位上的数字,例如12345,十位数字是4 12345/10%10=4
// d=0 表示个位 ;d=1 表示十位...依次类推
public static int digit(int d,int x){
return x/(int)Math.pow(10, d)%10;
}
public static void radixSort(int a[],int d){// d 表示位:个位,十位,百位....
// 定义10个桶0~9,每个桶存放 位的个数,例如:98,100,23,18
// 个位8,0,,3,8 分别存放在8,0,3,8桶的计数器,其中8号桶=2
int count[]=new int[10];// 定义十个计数器变量
for(int i:a){ // 取数组中每一位
count[digit(d,i)]++;
System.out.println(i+":"+d+"位上的数字是--->"+digit(d,i));
}
int i=0;
for(int c:count){
System.out.println(i+"号桶计数数"+c);
i++;
}
// 求位置
System.out.println("0号桶"+d+"位个数是"+count[0]+",位占数组位置0-"+count[0]);
for(int j=1;j<10;j++){
count[j]+=count[j-1];
System.out.println(j+"号桶"+d+"位个数"+(count[j]-count[j-1])+",占数组位置"+count[j]);
}
// 复制数组,
int [] temp=new int[a.length];
// temp[0]中的0 排 d位最小的digit(d,x)
for(int j=a.length-1;j>=0;j--){
// 注意:j=a.length-1; 还有count[9]=16 数组的长度,要减一
temp[ --count[digit(d,a[j])] ] =a[j];
}
// 一次排序后结果,并复制还原
for(int j=0;j<a.length;j++){
System.out.print(temp[j]+"-->");
a[j]=temp[j];
}
}
public
相关文档:
package com.infowarelab.java.test;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ReflectTester {
@SuppressWarnings("unchec ......
关于java虚拟机使用内存的思考
JVM(java虚拟机)其实就是操作系统(如windows)上的一个普通程序(进程名叫java,这个程序可以解释执行class文件)。
当java进程启动时会首先分配一块堆内存(最小内存),以后每当class字节码程序要求JVM(java进程)分配内存时,JVM
就会在预先分配的那块内存上面为class字节 ......
首先,做一点说明。Flex是不能直接连接数据库的,这一点大家需要知道,它只能间接地连接数据库。Flex中提供了三种方式:HttpService,WebService 和RemoteObject。其中HttpService可以直接获取XML中的数据,还可以通过JSP,ASP以及PHP读取数据库中的数据,这个比较简单,而且网上也有很多例子,我就不多说了。WebService我不 ......
这几天,在网上搜了很多关于java的东西,现在给大家总结一下,非常有用哦,很多东西我们在国内是无法了解到的
java程序员必去的国外网站
http://www.onjava.com
每周都有新文章发表
http://www.developer.com/java
由Gamelan.com 维护的Java技术文章网站
http://www.java.net
Sun公司维护的一个Java社区网站
http:/ ......