排序算法类的模板

如下

package com.zzh;
import java.util.Scanner; 
/**
 * Created by 1 on 2017/4/10.
 *排序算法类的模板
 */
public abstract class Example {
    public static void sort(Comparable[] a){
        int N=a.length;
        
        for (int i = 0; i < N; i++) {
            int min=i;
            for (int j = i+1; j < N; j++) {
                if (less(a[j], a[min])) {
                    min=j;
                }
            }
            exch(a, i, min);
        }
    }
 
    public static boolean less(Comparable v, Comparable w){
        //对元素进行比较
        return v.compareTo(w)<0;
    }
 
    public static void exch(Comparable[] a,int i,int j){
        //交换元素
        Comparable t=a[i];
        a[i]=a[j];
        a[j]=t;
    }
 
    public static void show(Comparable[] a){
        //在单行中打印数组
        for(int i=0;i<a.length;i++){
            System.out.print(a[i]+"");
            System.out.println();
        }
    }
 
    public static boolean isSorted(Comparable[] a){
        //测试数组元素是否有序
        for(int i=0;i<a.length;i++){
            if(less(a[i],a[i-1])){
                return false;
            }
        }
        return true;
    }
 
    public static  void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        while (scanner.hasNext()){
            String line=scanner.nextLine();
            String[] a=line.split(" ");
            sort(a);
            assert isSorted(a);
            show(a);
        }
 
 
    }
}

猜你喜欢

转载自www.cnblogs.com/zhuzehua/p/10840739.html