Java排序算法之冒泡排序

1、冒泡排序

/*
*最原始排序
*/
public static void sort(int array[]) {
    for (int i = 0; i < array.length - 1; i++) {
        for (int j = 0; j < array.length - 1 - i; j++) {
        if (array[j] > array[j + 1]) {
            int temp = array[j];
            array[j] = array[j + 1];
            array[j + 1] = temp;
        }
        }
    }
    }
/*
*利用标签进行改进
*/
public static void sortV2(int array[]) {
    for (int i = 0; i < array.length - 1; i++) {
        boolean flag = true;
        for (int j = 0; j < array.length - 1 - i; j++) {
        if (array[j] > array[j + 1]) {
            int temp = array[j];
            array[j] = array[j + 1];
            array[j + 1] = temp;
            flag = false;
        }
        }
        if (flag) {
        break;
        }
    }
    }
/*
*利用标签和范围进行改进
*/
    public static void sortV3(int[] array) {
    int last = 0;
    int sorted = array.length - 1;
    for (int i = 0; i < array.length - 1; i++) {
        boolean flag = true;
        for (int j = 0; j < sorted; j++) {
        if (array[j] > array[j + 1]) {
            int temp = array[j];
            array[j] = array[j + 1];
            array[j + 1] = temp;
            flag = false;
            last = j;
        }
        }
        sorted = last;
        if (flag) {
        break;
        }
    }
    }
/*
*利用标签和奇偶循环进行改进,也称鸡尾酒排序
*/
    public static void sortV4(int[] array) {
    for (int i = 0; i < array.length / 2; i++) {
        boolean flag = true;
        for (int j = i; j < array.length - 1 - i; j++) {
        if (array[j] > array[j + 1]) {
            int temp = array[j];
            array[j] = array[j + 1];
            array[j + 1] = temp;
            flag = false;
        }
        }
        if (flag) {
        break;
        }
        flag = true;
        for (int j = array.length - 1 - i; j > i; j--) {
        if (array[j] < array[j - 1]) {
            int temp = array[j];
            array[j] = array[j - 1];
            array[j - 1] = temp;
            flag = false;
        }
        }
        if (flag) {
        break;
        }
    }
    }
全部评论

相关推荐

10-28 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务