zoukankan      html  css  js  c++  java
  • 冒泡排序java代码

    冒泡排序就是依次取出最大数,然后依次交换放到数组最后边。

    直观写法:

    public long[] sort(long[] a){
            
            int n = a.length - 1;
            // Step:1 选出最大数
            for(int i = 0 ; i < n; i++){
                // 如果前一个数大于后一个数则交换
                if(a[i] > a[i+1]){
                    a[i] = a[i] ^ a[i+1];
                    a[i+1] = a[i+1] ^ a[i];
                    a[i] = a[i] ^ a[i+1];
                }
            }
            n--;
            // Step:2 选出第二大数
            for(int i = 0 ; i < n; i++){
                // 如果前一个数大于后一个数则交换
                if(a[i] > a[i+1]){
                    a[i] = a[i] ^ a[i+1];
                    a[i+1] = a[i+1] ^ a[i];
                    a[i] = a[i] ^ a[i+1];
                }
            }
            n--;
            // Step:3
            for(int i = 0 ; i < n; i++){
                // 如果前一个数大于后一个数则交换
                if(a[i] > a[i+1]){
                    a[i] = a[i] ^ a[i+1];
                    a[i+1] = a[i+1] ^ a[i];
                    a[i] = a[i] ^ a[i+1];
                }
            }
            n--;
            // Step:4
            for(int i = 0 ; i < n; i++){
                // 如果前一个数大于后一个数则交换
                if(a[i] > a[i+1]){
                    a[i] = a[i] ^ a[i+1];
                    a[i+1] = a[i+1] ^ a[i];
                    a[i] = a[i] ^ a[i+1];
                }
            }
            n--;
            System.out.println("n=" + n);
            // Step:5
            for(int i = 0 ; i < n; i++){
                // 如果前一个数大于后一个数则交换
                if(a[i] > a[i+1]){
                    a[i] = a[i] ^ a[i+1];
                    a[i+1] = a[i+1] ^ a[i];
                    a[i] = a[i] ^ a[i+1];
                }
            }
            n--;
            return a;
        }

    加个for循环:

    public long[] sort(long[] a){
            
            int n = a.length - 1;
            for(int j = 0 ; j < a.length ; j++){
                for(int i = 0 ; i < n; i++){
                    // 如果前一个数大于后一个数则交换
                    if(a[i] > a[i+1]){
                        a[i] = a[i] ^ a[i+1];
                        a[i+1] = a[i+1] ^ a[i];
                        a[i] = a[i] ^ a[i+1];
                    }
                }
                n--;
            }
            return a;
        }
  • 相关阅读:
    codeforces 501 C,D,E
    bzoj 3172 单词 ac自动机|后缀数组
    HDU2459 后缀数组+RMQ
    POJ 3294 二分找超过一半字符串中存在的子串
    头文件
    python爬取文本
    python爬取图片
    NEW
    dsu on tree 练习题
    lzz分块+莫队
  • 原文地址:https://www.cnblogs.com/orlion/p/4792719.html
Copyright © 2011-2022 走看看