排序算法: 冒泡排序, 选择排序, 插入排序

冒泡排序: 用第一个值逐个与后面没有被处理过的值做对比

选择排序: 取每一个值与后边所有值中的最大或最小值与当前值互换

插入排序: 逐个比较当前值与前边有序列, 如果比当前值大或小则互换, 否则直接进行下一个循环

public class Test{
    
    public static void main(String[] args) {
        int[] array = new int[]{1, 23, 4, 6, 3, 24, 65, 3, 64, 35, 0};
        int length = array.length;
        int tmp;

        //冒泡排序
        for (int i = 0; i < length - 1; i++) {
            for (int j = 0; j < length - 1 - i; j++) {
                if (array[j] > array[j + 1]) {
                    tmp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = tmp;
                }
            }
        }

        // 选择排序
        for (int i = 0; i < length; i++) {
            int index = i;
            for (int j = i + 1; j < length; j++) {
                if (array[index] < array[j]) {
                    index = j;
                }
            }
            if (index == i) continue;
            tmp = array[i];
            array[i] = array[index];
            array[index] = tmp;
        }

        // 插入排序
        for (int i = 1; i < length; i++) {
            for (int j = i; j > 0; j--) {
                if (array[j] < array[j - 1]) {
                    tmp = array[j];
                    array[j] = array[j - 1];
                    array[j - 1] = tmp;
                } else {
                    break;
                }
            }
        }

        // 打印
        for (int i = 0; i < length; i++) {
            System.out.println(array[i]);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/guandongsheng110/article/details/79758122