实现冒泡排序的4中方法

来源:互联网 发布:qq游戏网络不稳定 编辑:程序博客网 时间:2024/05/24 05:07

原理:

逐层通过无序区中的相邻元素间关键字的比较和位置的交换,使最小的元素往上冒泡

第1种

private static void bundleSort1(){        int[] arr = {1,3,7,4,8,9,6,2,5};        for (int i = 0; i < arr.length-1; i++) {            for (int j = 0; j < arr.length-1; j++) {                if (arr[j] > arr[j+1]) {                    int tem = arr[j];                    arr[j] = arr[j+1];                    arr[j+1] = tem;                }            }        }        System.out.println(Arrays.toString(arr));    }

第2种

private static void bundleSort2(){        int[] arr = {1,3,7,4,8,9,6,2,5};        for (int i = 0; i < arr.length-1; i++) {            for (int j = 0; j < arr.length-1-i; j++) {                if (arr[j] > arr[j+1]) {                    int tem = arr[j];                    arr[j] = arr[j+1];                    arr[j+1] = tem;                }            }        }        System.out.println(Arrays.toString(arr));    }

第3种

private static void bundleSort3(){        int[] arr = {1,3,7,4,8,9,6,2,5};        for (int i = 0; i < arr.length; i++) {            for (int j = i+1; j < arr.length; j++){                if (arr[i] > arr[j]) {                    int tem = arr[i];                    arr[i] = arr[j];                    arr[j] = tem;                }            }        }        System.out.println(Arrays.toString(arr));    }

第4种 优化有序序列的排序

private static void bundleSort4(){        boolean hassorted;        int[] arr = {1,3,7,4,8,9,6,2,5};        for (int i = 0; i < arr.length-1; i++) {            hassorted = true;            for (int j = 0; j < arr.length-1-i; j++) {                if (arr[j] > arr[j+1]) {                    hassorted = false;                    int tem = arr[j];                    arr[j] = arr[j+1];                    arr[j+1] = tem;                }            }            if (hassorted) {                break;            }        }        System.out.println(Arrays.toString(arr));    }
0 0
原创粉丝点击