2 - JAVA实现冒泡排序

2017-03-26  本文已影响14人  minminaya

基本思想

Bean

public class Bean {
    int score;
    String name;
    public Bean(int score, String name) {
        super();
        this.score = score;
        this.name = name;
    }
}

主程序

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

/**
 * @author NIWA
 * 桶排序
 * 
 * 依次输入5个数字,冒泡排序
 */
public class Main {

    List<Bean> list = new ArrayList<>();
    public static void main(String[] args) {
        Main mMain = new Main();
        mMain.scanf();
        mMain.sort();
        mMain.print();

    }


    private void print() {
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i).name+list.get(i).score);
        }
    }

    /**
     *  输入数据
     * */
    private void scanf() {
        Scanner sc1 =new Scanner(System.in);
        int n = sc1.nextInt();

        for(int i = 0;i < n; i++){
            list.add(i, new Bean(0, null));
        }
        for (int i = 0; i < n; i++) {
            Scanner sc2 = new Scanner(System.in);
            list.get(i).name = sc2.next();
            Scanner sc3 = new Scanner(System.in);
            list.get(i).score = sc3.nextInt();
        }
    }
    /**
     * 冒泡排序/
     */
    private void sort() {
        for (int i = 0; i < list.size()-1; i++) {//假如有n个数,只需要进行n-1次
            for (int j = 0; j < list.size() - i -1; j++) {
                if(list.get(j).score > list.get(j+1).score){//从小到大排序
                    Collections.swap(list, j, j+1);//交换list数据
                }
            }
        }
    }
}

测试
输入3,代表排3个数
a
2
b
3
c
4
输出的是a2 b3 c4

并且解决了桶排序不能有重复分数出现的问题

上一篇下一篇

猜你喜欢

热点阅读