冒牌排序算法详解

    xiaoxiao2025-06-21  5

    对于「冒泡排序」算法,核心是 冒泡。 如何冒泡?也就是说,把数组中最小的那个往上,冒的过程就是和他相邻的元素交换。这个冒的过程就是内循环。

    经过了一个冒的过程,可以使一个最小的元素冒出来,如果数组里面有 n 个元素,就得冒 n-1 次,这就是外循环。

    假设有数组 array = {10,9,8,7,6,5,4,3,2,1}

    则数组长度length = 10   外层循环需要循环10 - 1 = 9次     i = 0, 所以循环条件为 i < length - 1

    内层循环相邻的两个元素比较,即j 和j+1进行比较,符合条件就交换,j+1<length,所以j<length - 1;由于外循环每循环一次,就有

    一个最值出来(可以是最大值也可以是最小值),这个最值可以排除出去,所以内层循环条件为 j<length - 1 -i

    第一种写法:

    package cn.xiaoshan.oop.sort; import java.util.Arrays; public class testsort { public static void main(String[] args) { int arr[] = {8,4,5,7,2,10,6,9,1,3}; sort(arr); System.out.println(Arrays.toString(arr)); } public static void sort(int array[]){ int i,j; for(i = 0;i<array.length - 1;i++){ for(j = 0;j<array.length - 1 - i;j++){ if(array[j] > array[j+1]){ int temp; temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } } 第二种写法:

    package cn.xiaoshan.oop.sort; import java.util.Arrays; public class testsort { public static void main(String[] args) { int arr[] = {8,4,5,7,2,10,6,9,1,3}; sort(arr); System.out.println(Arrays.toString(arr)); } public static void sort(int array[]){ int i,j; for(i = 0; i<array.length - 1; i++){ for(j =array.length - 1; j> i; --j){ if(array[j] < array[j - 1]){ int temp; temp = array[j]; array[j] = array[j-1]; array[j-1] = temp; } } } } }

    转载请注明原文地址: https://ju.6miu.com/read-1300180.html
    最新回复(0)