【Java猫说】每日算法:#5-模板(泛型)方法之选择排序

Java每日算法

分析

模板函数,泛型参数传递排序

·针对各种参数,甚至自定义参数进行排序
·使用Comparable处理所有参数

编码

@Data
public class Student implements Comparable {

    private String name;
    private int score;

    public Student(String name, int score) {
        this.name = name;
        this.score = score;
    }

    /**
     * 定义Student的compareTo函数,如果分数相等,则按照名字的字母序排序
     * 如果分数不等,则分数高的靠前
     * @param o
     * @return
     */
    @Override
    public int compareTo(Student o) {
        if (this.score < o.score){
            return -1;
        }else if(this.score > o.score){
            return 1;
        }else{
            return this.name.compareTo(o.name);
        }
    }

    /**
     * 定义Student实例的打印输出方式
     * @return
     */
    @Override
    public String toString() {
        return "Student: " + this.name + " " + Integer.toString( this.score );
    }

}

模板化选择排序

public class SelectionSort {

    private SelectionSort(){}

    public static void sort(Comparable[] arr){
        for (int i = 0;i

地址与代码获取

项目以传Github,定期更新算法内容
UncleCatMySelf/java_algorithm

你可能感兴趣的:(算法,排序-正序-逆序,选择排序,模板方法模式,java)