排序算法類的模板
阿新 • • 發佈:2019-05-09
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,inti,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); } } }
排序算法類的模板