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;
        }
  • 相关阅读:
    房地产英语 Real estate词汇
    自制Flash FLV视频播放器
    .net反编译工具Reflector下载
    JQUery插件thickbox
    50 Great Photoshop Tutorials for Clever Beginners
    AspNet中你或许不知道的技巧(转)
    常用的设计网站(收藏)
    35 Green and Earthy Photoshop Effects
    使用 ASP.NET 2.0 增强网站的安全性
    asp.net中实现登陆的时候用SSL
  • 原文地址:https://www.cnblogs.com/orlion/p/4792719.html
Copyright © 2011-2022 走看看