排序算法之冒泡排序的思想以及Java实现

    xiaoxiao2025-05-28  10

    1 基本思想 设排序表长为n,从后向前或者从前向后两两比较相邻元素的值,如果两者的相对次序不对(A[i-1] > A[i]),则交换它们,其结果是将最小的元素交换到待排序序列的第一个位置,我们称它为一趟冒泡。下一趟冒泡时,前一趟确定的最小元素不再参与比较,待排序序列减少一个元素,每趟冒泡的结果把序列中最小的元素放到了序列的”最前面”。

    2,算法的实现(Java)

    package Algorithm; public class BubleSort { /** * @param args */ public static void main(String[] args) { int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000}; System.out.println("排序之前:"); BubleSort.output(data); System.out.println(); System.out.println("排序之后:"); BubleSort.buble_sort(data); BubleSort.output(data); } public static void buble_sort(int[] arr){ for(int i=0;i < arr.length-1;i++){ for(int j =0; j < arr.length-i-1;j++){ if(arr[j] > arr[j+1]){ int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } //输出打印 public static void output(int[] arr){ for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+"\t"); } } }

    得到的结果为:

    3,性能分析

    冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1),它是一种稳定的排序算法。

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