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;
        }
  • 相关阅读:
    crypto 密码加密
    -webkit-box 高度自动填满
    performance数据
    AJAX
    Javascript sort方法
    Javascript reduce方法
    如何让div内的多行文本上下左右居中
    js基础
    for循环的执行顺序
    json对象和json字符串
  • 原文地址:https://www.cnblogs.com/orlion/p/4792719.html
Copyright © 2011-2022 走看看