package com.heyang;

 /** *//**
* 使用位圖法進(jìn)行整形數(shù)組排序
* @author 何楊(heyang78@gmail.com)
*
* @since 2009-2-11 上午08:51:24
* @version 1.00
*/
 public class BitmapSorter {
 public static void main(String[] args) {
 int[] arr= {1,7,-3,0,0,6,6,9,-11};
bitmapSort(arr);
 for(int i:arr) {
System.out.print(i+",");
}
}
 /** *//**
* 使用位圖法進(jìn)行排序
* @param arr
*/
 public static void bitmapSort(int[] arr) {
// 找出數(shù)組中最值
int max=arr[0];
int min=max;
 for(int i:arr) {
 if(max<i) {
max=i;
}
 if(min>i) {
min=i;
}
}
// 得到位圖數(shù)組
int[] newArr=new int[max-min+1];
 for(int i:arr) {
int index=i-min;
newArr[index]++;
}
// 重整arr中的元素
int index=0;
 for(int i=0;i<newArr.length;i++) {
 while(newArr[i]>0) {
arr[index]=i+min;
index++;
newArr[i]--;
}
}
}
}
|