桶排序接受去google,直接上代碼:java
package com.taobao; import java.util.ArrayList; import java.util.List; /** * Created by zhangqidzq on 16/5/4. */ public class SortUtils { private static final int bucket_size = 950; public static List<DataVO> bucketSort(List<DataVO> dataVOs) { List<List<DataVO>> buckets = new ArrayList<List<DataVO>>(bucket_size); for (int i = 0; i < bucket_size; i++) { buckets.add(new ArrayList<DataVO>()); } for (DataVO dataVO : dataVOs) { int k = dataVO.getSortfield(); buckets.get(k).add(dataVO); } List<DataVO> sorted = new ArrayList<DataVO>(); for (int i = bucket_size - 1; i >= 0; i--) { sorted.addAll(buckets.get(i)); } return sorted; } public static void main(String[] args) { List<DataVO> list = new ArrayList<DataVO>(); list.add(new DataVO(1, "1")); list.add(new DataVO(0, "0")); list.add(new DataVO(100, "100")); list.add(new DataVO(34, "34")); List<DataVO> result = bucketSort(list); for (DataVO dataVO : result) { System.out.println(dataVO.getName()); } } } class DataVO { public DataVO(Integer sortfield, String name) { this.sortfield = sortfield; this.name = name; } private Integer sortfield; private String name; public Integer getSortfield() { return sortfield; } public void setSortfield(Integer sortfield) { this.sortfield = sortfield; } public String getName() { return name; } public void setName(String name) { this.name = name; } }