1. 程式人生 > >排序算法類的模板

排序算法類的模板

ret eat 模板 abstract 有序 ring pack public sta

如下

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); } } }

排序算法類的模板