1.桶排序——啊哈算法java实现

来源:互联网 发布:淘宝运营绩效考核方案 编辑:程序博客网 时间:2024/06/05 10:58


/** * 题目: * 5个人考试得分分别为 5分,3分,5分,2分,8分;满分是10分; * 要将 5 3 5 2 8 这个数组进行降序排序; * 即排序后变为 8 5 5 3 2; * *//** * 桶排序解法: 建一个大小为11的一维数组a,a[0]~a[10]元素都初始化为0, * 用元素下标0~10表示分数,用元素的值表示有多少人得过该元素下标对应的分数; 例如: * a[1]=0表示0人得1分,a[5]=2表示有2人得5分,‘5’代表5分,‘2’代表2个人得5分; *  * 接下来在a数组的循环中对每个人的分数进行遍历,分数值等于数组下标,该数组的值加1 * */public class BucketSort {public int[] bucketSort(int[] array) {int[] a = new int[11];for (int i = 0; i < a.length; i++) {for (int j = 0; j < array.length; j++) {if (array[j] == i) {a[i] += 1;}}}return a;}public static void main(String[] args) {BucketSort bucket = new BucketSort();int[] array = { 5, 3, 5, 2, 8 };int[] a = bucket.bucketSort(array);for (int i = a.length - 1; i >= 0; i--) {if (a[i] > 0) {for (int j = 0; j < a[i]; j++)System.out.println(i);}}}}

输出:

8 5 5 3 2


啊哈算法PDF版下载

0 0
原创粉丝点击