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;
        }
    }
    }
全部评论

相关推荐

2025-12-31 14:31
湖南科技大学 Web前端
是阿亮吖:一个是这个时间招人比较少,另一个是沟通太少了。六十多份太养生了,最起码沟通个五六百份吧
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务