桶排序

Posted lyd447113735

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了桶排序相关的知识,希望对你有一定的参考价值。

桶排序

桶排序的特点是时间复杂度比较低,运算起来非常快,逻辑也很简便,写起来很容易。但是空间复杂度非常大,不适合大型数据,因为大型数据浪费的内存空间特别多。而且使用桶排序时数据类型比较单一,不适合复杂情况

通过下面一个例题理解桶排序

**期末考试完了老师要将同学们的分数按照从高到低排序。小哼的班上只有5个同学,这5个同学分别考了 5 分、3 分、 5 分、2 分和 8 分,哎考得真是惨不忍睹(满分是 10 分)。接下来将分数进行从小到大排序, 排序后是 8 5 5 3 2。你有没有什么好方法编写一段程序,让计算机随机读入 5 个数然后将这 5 个数从小到大输出?**

解析: 创建一个长度为11的数组,下标分别是0~10,根据满分是10分,所以每一个数组下标都是对应一个分数。每个同学考的分值出现一次,就在与分值相对应的下标表示的值加1.
技术图片

package _4_9_test;

import java.util.Scanner;

/*
 * 桶排序
 **/
public class EightyThree {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int score[] = new int[11];
		
		Scanner scanner = new Scanner(System.in);
//		输入学生个数
		int n = scanner.nextInt();
		
//		输入学生成绩
		int num;
		for(int i=0;i<n;i++) {
			num = scanner.nextInt();
			score[num]++;
		}
		
//		按从小到大的顺序输出学生分数
		for(int i=0;i<11;i++) {
				for(int j=0;j<score[i];j++) {
					System.out.print(i+" ");
				}
		}

	}

}

以上是关于桶排序的主要内容,如果未能解决你的问题,请参考以下文章

桶排序代码

桶排序和计数排序

线性排序:桶排序计数排序

线性排序:桶排序计数排序

排序算法——桶排序

python桶排序代码