-
public class Sort{
-
public static void main(String[] args){
-
Integer[] data={3,2,9,8,7,10};
-
BaseSort s=new Insertion();
-
-
s.sort(data);
-
-
System.out.println(s.isSorted(data));
-
}
-
}
-
-
//插入排序
-
class Insertion extends BaseSort{
-
-
@Override
-
void sort(Comparable[] data) {
-
int length=data.length;
-
for(int i=1;i<length;i++){
-
this.show(data);
-
for(int j=i;j>0 && less(data[j],data[j-1]);j--)
-
{
-
exch(data,j,j-1);
-
}
-
}
-
}
-
}
-
-
//选择排序
-
class Selection extends BaseSort{
-
@Override
-
void sort(Comparable[] data) {
-
int length=data.length;
-
for(int i=0;i<length;i++){
-
-
this.show(data);
-
int min=i;
-
for(int j=i+1;j<length;j++)
-
{
-
if(less(data[j],data[min])) {
-
min = j;
-
}
-
}
-
exch(data,i,min);
-
}
-
}
-
}
-
-
-
abstract class BaseSort {
-
abstract void sort(Comparable[] data);
-
//比较
-
public boolean less(Comparable v,Comparable w){
-
return v.compareTo(w)<0;
-
}
-
-
//交换
-
public void exch(Comparable[] data,int i,int j){
-
Comparable t=data[i];
-
data[i]=data[j];
-
data[j]=t;
-
}
-
-
//打印
-
public void show(Comparable[] data){
-
for(int i=0;i<data.length;i++){
-
System.out.print(data[i]+" ");
-
}
-
System.out.println("");
-
}
-
-
//验证
-
public boolean isSorted(Comparable[] data){
-
for(int i=1;i< data.length;i++){
-
if(less(data[i],data[i-1]) )
-
return false;
-
}
-
return true;
-
}
-
}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-2124415/
,如需转载,请注明出处,否则将追究法律责任。