排序算法

一颗蔬菜 2019-05-05 PM 83℃ 0条

选择排序

点此查看学习视频

public int[] selectionSort(int[] arr){
    if (arr == null || arr.length < 2)
        return null;
    for (int i = 0;i < arr.length;i++){
        int currentValue = arr[i];
        int locationOfMin = i;
        for (int j = i + 1;j < arr.length;j++){
            if (currentValue > arr[j]){
                currentValue = arr[j];
                locationOfMin = j;
            }
        }
        if (locationOfMin != i) {
            arr[i] = arr[i] ^ arr[locationOfMin];
            arr[locationOfMin] = arr[i] ^ arr[locationOfMin]; 
            arr[i] = arr[i] ^ arr[locationOfMin];
        }
    }
    return arr;
}

冒泡排序

点此查看学习视频

public int[] bubbleSort(int[] arr) {
     for (int i = arr.length -1;i >= 0;i--){
        for (int j = 0;j <= i;j++){
            if (arr[i] < arr[j]) {
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
     }
    return arr;
}

插入排序

点击查看学习视频

public int[] insertSort(int[] arr) {
        for (int i = 0; i < arr.length - 1; i ++) {
            if (arr[i] > arr[i + 1] ) {
                arr[i] = arr[i] ^ arr[i + 1];
                arr[i + 1] = arr[i] ^ arr[i + 1];
                arr[i] = arr[i] ^ arr[i + 1];
                if (i > 0){
                    for (int j = i;j > 0;j --) {
                        if (arr[j] < arr[j - 1]) {
                            arr[j] = arr[j] ^ arr[j -1];
                            arr[j - 1] = arr[j] ^ arr[j -1];
                            arr[j] = arr[j] ^ arr[j -1];
                        }
                    }
                }
            }
        }
        return arr;
    }
标签: 面试

非特殊说明,本博所有文章均为博主原创。

上一篇 多线程
下一篇 常见面试题