package chapter;
interface Comparable
{
public abstract int compare(Object obj1,Object obj2);
}
package chapter;(为什么在编译的时候,这里显示要interface或是class呢)
public class FlexSorter
{
public static void sort(Object[] A,Comparable comp)
{
sort(A,A.length,comp);//根据comp比较器产生的顺序对长度为A.length的数组进行排列
}
public static void sort(Object[] A,int stop,Comparable comp)
{
for(int i=0;i<stop;i++)
swap(A,i,findMin(A,i,stop,comp));
}
private static int findMin(Object[] A,int start,int stop,Comparable comp)
{
int min=start;
for(int i=start+1;i<stop;i++)
{
if (comp.compare(A[i],A[min])<0)
min=i;
}
return min;
}
private static void swap(Object[] A,int pos1,int pos2)
{
Object temp=A[pos1];
A[pos1]=A[pos2];
A[pos2]=temp;
}
}