八种排序算法

https://juejin.im/post/5b95da8a5188255c775d8124#heading-4

1. 冒泡排序Bubble Sort

每次冒出一个最大的到最后一位

public void bbsort(int[] arr){
    int le = arr.length;
    for(int i = 0; i < le - 1; i++){
        for(int j = 0; j < le - i - 1; j++){
            if(arr[j] > arr[j+1]) swap(arr, j, j+1);
            }
        }            
}
public void swapbycount(int[] arr, int a, int b){
    arr[a] = arr[a] + arr[b];
    arr[b] = arr[a] - arr[b];
    arr[a] = arr[a] - arr[b];
}

还可以byBit

public static void  swapByBitOperation(int[] array, int i, int j) {
        array[i] = array[i]^array[j];
        array[j] = array[i]^array[j]; //array[i]^array[j]^array[j]=array[i]
        array[i] = array[i]^array[j]; //array[i]^array[j]^array[i]=array[j]
    }

作者:foofoo
链接:https://juejin.im/post/5b95da8a5188255c775d8124
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2. 快速排序 quick sort

 

3. 插入排序 insertion sort

从第二个数开始,每次把当前的数放在合适的位置(通过和前面的数比较)

 

你可能感兴趣的:(八种排序算法)