定义一个接口Sort,接口中定义了排序方法sort()。然后该接口的实现类有选择排序ChoiceSort和冒泡排序BubbleSort,分别实现对一组整数的降序排列。再编写一个测试类TestSort,在测试类的主方法中通过Sort对象调用方法sort(),分别实现对一组整数的选择算法和冒泡算法的降序排列并输出
package 实验三;
public interface Sort {
void sort();
void sort(int[] arr);
}
package 实验三;
public abstract class BubbleSort implements Sort{
protected abstract String toString(int[] arr);
@Override
public void sort(int[] arr) {
int temp;
for(int i=0;i<arr.length-1;i++){//外层循环环控制排序趟数
for(int j=0;j<arr.length-1-i;j++){//内层循环控制每一趟排序多少次
if (arr[j] > arr[j+1]) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.println("排序后的顺序为"+toString(arr));
}
}
package 实验三;
import java.nio.channels.Pipe;
public abstract class ChoiceSort implements Sort{
protected abstract String toString(int[] arr);
@Override
public void sort(int[] arr) {
//最小变量下标
int min,temp;
//比较次数
int compareNum=0;
//交换次数
int swapNum=0;
//除了最后一个数每个数都需要和他后面的数进行比较
for(int i=0;i<arr.length-1;i++){
min=i;
// 只需要和i+1个数及后续的数进行比较
for(int j=i+1;j<arr.length;j++){
compareNum++;
if(arr[j]<arr[min]){
min=j;
}
}
if(min!=i){
swapNum++;
temp= arr[i];
arr[i]=arr[min];
arr[min]=temp;
}
}
System.out.println("排序后的顺序为"+toString(arr));
}
}
最后测试类改咋写?