当柳上原的风吹向天际的时候...

真正的快乐来源于创造

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
package com.heyang;

/**
 * 使用位图法进行整形数组排序 
 * 
@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]
--;
            }

        }

    }

 }
posted on 2009-02-11 08:56 何杨 阅读(1555) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: