TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
- /**
- * 使用位图法进行整型数组排序
- * @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+",");
- }
- }
-
- /** *//**
- * 使用位图法进行排序
- * @param arr
- */
- public static void bitmapSort(int[] arr){
- // 找出数组中最值
- int max=arr[0];
- int min=max;
- for(int i:arr){
- if(max< i){
- max=i;
- }
- if(min>i){
- min=i;
- }
- }
-
- // 得到位图数组
- 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]--;
- }
- }
- }
- }
- 输出:
- C:java>java BitmapSorter
- -11,-3,0,0,1,6,6,7,9,
复制代码
源码下载:http://file.javaxxz.com/2014/11/4/000144343.zip |
|