冒泡排序

算法原理

冒泡排序算法的原理如下: 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];    }}