蓝桥杯

算法基础课 2.4 插入排序 冒泡排序 选择排序

2020-02-28  本文已影响0人  sakura579

插入排序

// 插入排序
    public static void main(String[] args) {
        int arr[] = new int[] { 3, 1, 2, 4, 5 };
        for (int i = 1; i < arr.length; i++) {
            int target = arr[i];
            int j = i - 1;
            while (j>-1&&target < arr[j]) {
                arr[j+1] = arr[j];
                j--;
            }
            arr[j+1] = target;
        }
        System.out.println(Arrays.toString(arr));
    }

冒泡排序

import java.util.Arrays;

public class ssad {
    public static void main(String[] args) {
        int [] arr = new int[] {3,2,1};
        sort(arr);
        System.out.println(Arrays.toString(arr));
    }
    //冒泡排序
    static void sort(int [] arr) {
        for(int j = 0;j<arr.length;j++) {
            //注意上边界都是从第一个开始,但是每趟完成之后,天花板在降低
            for(int i =0;i<arr.length-j-1;i++) {
                if(arr[i]>arr[i+1]) {
                    utils(arr,i,i+1);
                }
            }
        }
    }
    static void utils(int[] arr,int i,int j) {
        int tm = arr[i];
        arr[i] = arr[j];
        arr[j] = tm;
    }
}

选择排序

package study;

import java.util.Arrays;

public class sssx {
    public static void main(String[] args) {
        int [] arr = {4,5,6,3,2,1};
        sort(arr,0,arr.length-1);
        System.out.println(Arrays.toString(arr));
    }
    // 选择排序
    private static void sort(int []arr,int low,int hight) {
        for(int i =low;i<hight;i++) {
            int min =i;
            for(int j=min+i;j<=hight;j++) {
                if(arr[min]>arr[j]) {
                    min = j;//覆盖
                }
            }
            utils(arr,min,i);//交换
        }
    }
    static void utils(int[] arr,int i,int j) {
        int tm = arr[i];
        arr[i] = arr[j];
        arr[j] = tm;
    }
}

上一篇下一篇

猜你喜欢

热点阅读