乐趣区

关于java:算法笔记一冒泡排序

冒泡排序

算法原理

 冒泡排序算法的原理如下:1. 比拟相邻的元素。如果第一个比第二个大,就替换他们两个。2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最初一对。在这一点,最初的元素应该会是最大的数。3. 针对所有的元素反复以上的步骤,除了最初一个。4. 继续每次对越来越少的元素反复下面的步骤,直到没有任何一对数字须要比拟。

算法过程

 例:对 int[] arr = {10,5,9,3,6,8} 进行从低到高排序:

 第一轮遍历:从 0 -arr.Length-1,使数组中最大的数,冒泡到最高的地位。第二轮遍历:从 0 -arr.Length-2,使数组中次大的数,冒泡到次高的地位。顺次遍历,从到到低顺次确认地位。

算法性能

算法 最好工夫 最坏工夫 均匀工夫 额定空间
冒泡 O(n) O(n2) O(n2) 0/1

Java 代码

public class BubbleSorting {public static int[] BubbleSortingFunc(int[] arr) {for (int cur = arr.length - 1; cur >= 0; cur--) {for (int i = 0; i < cur; i++) {if (arr[i]>arr[i+1]) swap(arr, i,i+1);
            }
        }
        return arr;
    }
    // 替换数组中两个元素的地位,异或运算的性质,但 i 不等于 j
    public static void swap(int[] arr, int i,int j){arr[i] = arr[i] ^ arr[j];
        arr[j] = arr[i] ^ arr[j];
        arr[i] = arr[i] ^ arr[j];
    }
}
退出移动版