1. 程式人生 > >java排序演算法(八)------桶式排序

java排序演算法(八)------桶式排序

桶式排序

實現程式碼:

/**
 *桶式排序:有限個數字m,每個數字的大小都在1與n之間
 *,則我們可以假設有n個桶,遍歷m個數字,將其存入對應的桶中
 *(如數字的值為3,就存入3號桶,桶的值對應存入數字的個數)
 */
public class BucketSort {
	public static void sort(int[] arr){
		//求得最大值
		int max = arr[0];
		for(int i = 0;i < arr.length;i ++){
			if(max < arr[i]){
				max = arr[i];
			}
		}
		//建立桶
		int
[] count = new int[max+1]; for(int i = 0;i < arr.length;i ++){ count[arr[i]] ++; } //倒出桶 for(int i = 0,j = 0;i <= max;i ++){ if(count[i] != 0){ arr[j++] = i; } } } }