冒泡排序

2021-03-30  本文已影响0人  编程的猫

算法思想 :

(升序)
将数组 元素 从前到后 遍历,相邻 两个 元素 比较大小 ,若前边的 元素 大于后边 的 元素 ,相互 交换位置 ,直到所有 的 元素 比较完毕 。

java代码实现

public class BubbleSort {

    /**
     * 冒泡排序思想:
     * 数组的元素从前到后遍历,相邻两个元素比较大小,若前边大于后边相互交换位置,直到没个元素都比较完毕
     *
     * @param array array
     */
    public static void sort(int[] array) {
        for (int i = 0; i < (array.length - 1); i++) {
            for (int j = 0; j < (array.length - i - 1); j++) {
                if (array[j] > array[j + 1]) {
                    swap(array, j, j + 1);
                }
            }
        }
    }

    /**
     * 交换数组的两个元素
     *
     * @param array 数组
     * @param left  前边的元素
     * @param right 后边的元素
     */
    private static void swap(int[] array, int left, int right) {
        if (array != null && array.length > 1) {
            int tmp = array[left];
            array[left] = array[right];
            array[right] = tmp;
        }
    }

}

C++代码实现

//冒泡排序思想:将数组元素从前到后遍历,相邻两个元素比较大小,若前边的元素小于后边的元素,相互交换位置,直到所有元素比较完毕
void bubbleSort(int array[], int len) {
    for (int i = 0; i < (len - 1); ++i) {
        for (int j = 0; j < (len - i - 1); ++j) {
            if (array[j] > array[j + 1]) {
                //若前边的元素大于后边的元素,则交换两个元素的位置
                std::swap(array[j], array[j + 1]);
            }
        }
    }
}

//打印数组的元素
void printArray(int array[], int len) {
    for (int i = 0; i < len; ++i) {
        LOGE("%d", array[i]);
    }
}
上一篇下一篇

猜你喜欢

热点阅读