Java语言中选择排序和冒泡排序

/**
 *
编写程序
1.定义排序类
      方法:排序,显示
2.定义冒泡排序和选择排序两个子类
 */
//排序测试类(用抽象类来实现)
public class TestSort{
    public static void main(String[] args){
        int[] array=new int[]{
          3,5,9,12,1,6
        };
        Sort s=new MaoPaoSort();
        s.sort(array);
        s.show(array);
        s=new XuanZeSort();
        s.sort(array);
        s.show(array);
    }
}
/**
 *排序抽象类
 */
abstract class Sort {
    
    public abstract void sort(int[] array);
    
    public abstract void show(int[] array);
    
}

//冒泡排序类
class MaoPaoSort extends Sort{
    //业务逻辑处理
    public void sort(int[] array){
        for(int i=0;i<array.length-1;i++){
            for(int j=0;j<array.length-i-1;j++){
                int t;
                if(array[j]>array[j+1]){
                    t=array[j];
                    array[j]=array[j+1];
                    array[j+1]=t;
                }

            }
        }
    }
    //遍历数组
    public void show(int[] array){
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]+" ");
        }
        System.out.println();
    }

}

//选择排序类
class XuanZeSort extends Sort{
    public void sort(int[] array){
        for(int i=0;i<array.length;i++){
            int k=i;
            for(int j=i;j<array.length;j++){
                if(array[k]>array[j]){
                    k=j;
                }
            }
            int t=0;
            t=array[k];
            array[k]=array[i];
            array[i]=t;

        }
    }
    //遍历数组
    public void show(int[] array){
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]+" ");
        }
        System.out.println();
    }
}

posted @ 2012-12-19 23:11  bestzxl  阅读(226)  评论(0编辑  收藏  举报