java实现桶排序
了解桶排序
这个算法就好比有 11 个桶,编号从 0~10。每出现一个数,就在对应编号的桶中放一个 小旗子,最后只要数数每个桶中有几个小旗子就 OK 了。例如 2 号桶中有 1 个小旗子,表示 2 出现了一次;3 号桶中有 1 个小旗子,表示 3 出现了一次;5 号桶中有 2 个小旗子,表示 5 出现了两次;8 号桶中有 1 个小旗子,表示 8 出现了一次。
如何实现桶排序
- 使用数组代替桶的作用,利用数组的下标直接排好顺序
- 每次遇到相应的旗子编号就对其对应的桶即相同的数组下标如a[5]的值+1用于记录出现几次
- 依次判断桶中的值即为输出的次数
- 依次按照次数输出桶的编号即数组的下标
利用java实现
题目:
考试成绩需要由小往大依次排序 成绩范围为0-10 学生数为5人 请依次输入学生成绩并进行排序
java code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import java.util.Scanner;; public class sortest { public static void main(String[] args) { int[] scores=new int[11];//定义一个空间大小为11的变量 0-10即11个 Scanner input = new Scanner(System.in);//控制台等待输入 for(int i=0;i<=10;i++){ //初始化scores值为0 scores[i]=0; } for(int j=1;j<=5;j++){ //循环输入5名学生成绩 System.out.println("请输入第"+j+"名学生成绩"); int t=input.nextInt(); scores[t]++;//计数 } System.out.println("**************"); for(int a=0;a<=10;a++){ //依次判断每个成绩 for(int b=1;b<=scores[a];b++){ //依次判断每个成绩的人数 System.out.println(a); } } } } |
近期评论