美文网首页
冒泡排序

冒泡排序

作者: 编程的猫 | 来源:发表于2021-03-30 11:36 被阅读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]);
        }
    }
    

    相关文章

      网友评论

          本文标题:冒泡排序

          本文链接:https://www.haomeiwen.com/subject/psgwhltx.html