使用递归实现冒泡排序

1,797 阅读1分钟

冒泡排序

/**
 * 使用递归实现冒泡排序
 */
public int[] bubbleSort(int[] array, int lastIndex) {
    if (lastIndex <= 0) {
        // 排序完成
        return array;
    }
    // 依次交换元素的位置
    for (int i = 0; i < lastIndex; i++) {
        int element1 = array[i];
        int element2 = array[i + 1];
        if (element1 > element2) {
            // 交换两个元素的位置
            array[i] = element2;
            array[i + 1] = element1;
        }
    }
    // 排序未完成,递归排序
    return bubbleSort(array, lastIndex - 1);
}

使用示例

int[] array = {1, 521, 15, 45, 111, 96, 321, 3, 8, 9, 12};
int[] sortArray = bubbleSort(array, array.length - 1);
Log.i("Haoxueren", Arrays.toString(sortArray));