Java实现三种简单排序方法:冒泡、 插入、选择

package sorting;
import java.util.*;
public class Sorting {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    int arr[]={12,23,11,1,13,45,99,43,15,55,34,33,45,89,87};
    //显示当前时间
    Calendar cal=Calendar.getInstance();
    System.out.println("开始时间"+cal.getTimeInMillis());

    InsertSrot ss=new InsertSrot();
    ss.sort(arr);
    //重获日历实例
    cal=Calendar.getInstance();
    System.out.println("结束时间"+cal.getTimeInMillis());

}

}
//插入排序
class InsertSrot{

public void sort(int arr[]){
    //输出排序前
    for(int i=0;i<arr.length;i++) System.out.print(arr[i]+"  ");
    System.out.println("这是排序前");
    //排序
    for(int i=1;i<arr.length;i++){
        int insertVal=arr[i];
        int index=i-1;
        while(index>=0&&insertVal<arr[index]){
            arr[index+1]=arr[index];
            index--;
        }
        arr[index+1]=insertVal;
        //打印当次
        for(int k=0;k<arr.length;k++) System.out.print(arr[k]+"  ");
        System.out.println("第"+(i+1)+"轮排序");
    }

}

}
//选择排序
class SelectSort{

public void sort(int arr[]){
    //输出排序前
    for(int k=0;k<arr.length;k++) System.out.print(arr[k]+"  ");
    System.out.println("这是排序前");
    //排序
    for(int i=0;i<arr.length-1;i++){
        int min=arr[i];
        int minIndex=i;
        //找到当次最小
        for(int j=i+1;j<arr.length;j++){
            if(arr[j]<min){
                min=arr[j];
                minIndex=j;
            }
        }
        //交换最小
        int temp=arr[i];
        arr[i]=min;
        arr[minIndex]=temp;
        //打印当次
        for(int k=0;k<arr.length;k++) System.out.print(arr[k]+"  ");
        System.out.println("第"+(i+1)+"轮排序");
    }
}

}
//冒泡排序
class BubbleSort {

public void sort(int arr[]){
    //输出排序前
    for(int k=0;k<arr.length;k++) System.out.print(arr[k]+"  ");
    System.out.println("这是排序前");
    //开始冒泡排序
    for(int i=0;i<arr.length-1;i++){
        for(int j=0;j<arr.length-i-1;j++){
            if(arr[j]>arr[j+1]){
                int temp=arr[j+1];
                arr[j+1]=arr[j];
                arr[j]=temp;
            }
        }
        //打印当次
        for(int k=0;k<arr.length;k++) System.out.print(arr[k]+"  ");
        System.out.println("第"+(i+1)+"轮排序");

    }
}

}

你可能感兴趣的:(排序)