• java 冒泡排序


    思路

    1. 将序列当中的左右元素,依次比较,保证右边的元素始终大于左边的元素;( 第一轮结束后,序列最后一个元素一定是当前序列的最大值;)
    2. 对序列当中剩下的n-1个元素再次执行步骤1。
    3. 对于长度为n的序列,一共需要执行n-1轮比较

    时间复杂度

    最佳情况:T(n) = O(n) 最差情况:T(n) = O(n2) 平均情况:T(n) = O(n2)

    代码

    
    import java.util.Arrays;
    
    /**
     * 冒泡排序
     * @author remainsu
     * @version 1.0 2019-05-29
     */
    public class BubbleSort {
    
        /**
         * 排序方法
         * @param arr 要排序的数组
         * @return toString 方便输出
         */
        public static String bubbleSort(int[] arr) {
    
            int tmp;
            //int count = 0;
            // 冒泡次数
            for(int a=0; a<arr.length-1; a++ ) {
                
                //count = a+1;
                boolean flag = false;
                // 比较未移动的
                for(int b=0; b<arr.length-a-1; b++ ) {
                    // 后面的小于前面的,则互换位置
                    if(arr[b+1] < arr[b]) {
                        tmp = arr[b];
                        arr[b] = arr[b+1];
                        arr[b+1] = tmp;
                        
                        //有数据移动,则状态标位true
                        flag = true;
                    }
                }
                //没有数据移动,即数组已经有序,直接退出
                if(!flag) break;
            }
            
            //System.out.println("冒泡的次数:"+ count);
            return Arrays.toString(arr);
        }
        
        public static void main(String[] args) {
            
            int[] arr = {111, 3, 5, 52, 74, 312, 75, 3, 764, 3, 2111, 7, 31};
            //int[] arr = {1,2,10,3,4,5,6,7,8,9};
            
            System.out.println("排序后的数组:"+ bubbleSort(arr));
        }
        
    

    参考

    1. https://blog.csdn.net/hellozhxy/article/details/79911867
    Souviens Toi Que Tu Vas Mourir !
  • 相关阅读:
    [SCOI2013]火柴棍数字(背包)
    [NOI2015]品酒大会
    后缀数组小结
    [POI2009]Slw
    [POI2009]Wie
    [POI2008]账本BBB
    ant语法和规范
    使用Hudson进行持续集成
    gnu make
    可信执行环境(TEE)介绍
  • 原文地址:https://www.cnblogs.com/remainsu/p/java-mao-pao-pai-xu.html
Copyright © 2020-2023  润新知