您的位置:首页

一个简单的排序问题

2017-05-01 09:18 190 查看
1.首先定义一个接口

package temp.test;

public interface IntCompare {

public int compare(int a, int b);
}


2.分别定义两个接口实现类,一个增序。一个减序

增序:

package temp.test;

public class IncreaseOrder implements IntCompare{

@Override
public int compare(int a, int b) {
// TODO Auto-generated method stub
if(a>b){
return -1;
}else if(a<b){
return 1;
}else{
return 0;
}
}

}


降序:

package temp.test;

public class DecreaseOrder implements IntCompare{

@Override
public int compare(int a, int b) {
// TODO Auto-generated method stub
if(a>b){
return 1;
}else if(a<b){
return -1;
}else{
return 0;
}

}

}


3.最后写一个排序的方法

package temp.test;

public class SortNumber {

public static void sortNumber(int array[],IntCompare compare){
if(array!=null){
for(int i=1;i<array.length;i++){
int temp=array[i];
int j=i;
if(compare.compare(array[j-1], temp)==-1){
while(j>=1&&compare.compare(array[j-1], temp)==-1){
array[j]=array[j-1];
j--;
}
}
array[j]=temp;
}
}
}

public static void main(String args[]){
int array1[]={1,2,3,4,5};

int array2[]={1,2,3,4,5};

sortNumber(array1, new IncreaseOrder());
for(int item:array1){
System.out.print(item);
}

sortNumber(array2, new DecreaseOrder());
for(int item:array2){
System.out.print(item);
}
}
}


4.測试结果

1234554321
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: