java实现 插入排序&冒泡排序&选择排序

插入排序

插入排序:选择一个位置,把他和左边的位置比较……每次排序都是将本次排序的最小值放最左边

public static void main(String [] args){
    int [] arr = {4,99,56,2,23,12,1};
    int temp = 0;
    //数组是从0开始计下标,这里1取的第二个下标的值
    for(int i = 1;i < arr.length;i ++){
     //从我们取的位置开始往左(往前)找,
         for(int j = i;j > 0;j --){
         //只要左边的数我们取的这个数大,那就一直把这些数往右移,
         //相当于这时每次都把取到的数往前边插队一个位置,
             if(arr[j] < arr[j - 1]){
             //就把取的数放在这个数的后面,
                 temp = arr[j];
                 arr[j] = arr[j - 1];
                 arr[j - 1] = temp;
              }
              //当我们找到小于的数时,就停止了本次if的查找,返回到循环语句接着取下一个位置
        }
    }
    for(int k : arr){
        System.out.print(k + " ");
     }
}

冒泡排序

冒泡排序就是从第一个数开始,一直和右边紧挨的数进行比较,然后较大的数始终在右边。

public static void main(String [] args){
    int [] arr = {4,99,56,2,23,12,1};    //7个数
    int temp = 0;
    for(int i = 0; i < arr.length-1;i ++){     //外圈循环6次,
        for(int j = 0;i < arr.length-1-i;j ++){    //内圈循环用来和右边紧挨的数进行比较
            if(arr[j] < arr[j + 1]){
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
     }
     for(int a : arr){
         System.out.print(a + " ");
     }
}

选择排序

public static void main(String [] args){
    int [] arr = {4,99,56,2,23,12,1}; 
    int min = 0,temp = 0;
    for(int i = 0;i < arr.length-1;i ++){
        min = i;
        for(int j = min + 1;j < arr.length;j ++){
            if(arr[j] < arr[min]){
                min = j;
            }
        }
        temp = arr[i];
        arr[i] = arr[min];
        arr[min] = temp;
    }
     for(int a : arr){
         System.out.print(a + " ");
     }
}

你可能感兴趣的:(java实现 插入排序&冒泡排序&选择排序)