通常的排序算法有选择法,冒泡法。试编一个程序将这两种算法的共性定义于一个父类中,然后定义两个子类分别实现选择法和冒泡法排序的功能,并编写测试程序验证类的功能基本出来了,就...
通常的排序算法有选择法,冒泡法。试编一个程序将这两种算法的共性定义于一个父类中,然后定义两个子类分别实现选择法和冒泡法排序的功能,并编写测试程序验证类的功能
基本出来了,就是省略的地方请补充一下。谢谢。
package exercise;
public class BubbleAndSelectSort {
static double []tesData = {12,10,54,8,6,71,56};
public static void main(String[] args) {
System.out.println("数组原顺序如下:");
for(int i=0;i
System.out.print(tesData[i]+" ");
System.out.println();
SortDouble bsort = new SelectSort();
bsort.sort(tesData);
System.out.println("选择排序结果如下:");
for(int i=0;i
System.out.print(tesData[i]+" ");
System.out.println();
bsort = new BubSort();
bsort.sort(tesData);
System.out.println("冒泡排序结果如下:");
for(int i=0;i
System.out.print(tesData[i]+" ");
System.out.println();
}
}
abstract class SortDouble{
private double[] values;
public final void sort(double [] data){
values = data;
DoSort();
}
protected abstract void DoSort(); // 父类中的抽象方法,子类必须重写或覆盖
protected final int getDataLength(){
return values.length;
}
protected final int compare(int i,int j){//比较i及j的两个数组元素的大小
。。。。。
}
protected final void swap(int i,int j){//交换下标为i及j的两个数组元素的位置
。。。。。。
}
}
class SelectSort extends SortDouble{
protected void DoSort(){ //重写父类中的抽象方法
for(int i=0;i
for(int j=i+1;j
if(compare(i, j)<0)
swap(i, j);
}
}
}
}
class BubSort extends SortDouble{
protected void DoSort(){//重写父类中的抽象方法
for(int i=0;i
for(int j=1;j
if (compare(i, j)<0) {
swap(i, j);
}
}
}
}
展开