首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

排序算法(三):冒泡排序 Java 實現與特性

     編輯:關於C語言

算法思想

  1. 依次遍歷數組,相鄰元素兩兩比較。
  2. 若前者大於後者則交換,每輪將最大元素「冒泡」到最右端。

Java 實現

[java]
package com.robert.paixu;

public class BubbleSortAlgorithm {
    public static void main(String[] args) {
        int[] arrays = {1,9,2,8,3,7,4,5,0,10,18,11};
        bubbleSort(arrays);
        display(arrays);
    }

    private static void bubbleSort(int[] arrays) {
        for (int i = 0; i < arrays.length - 1; i++) {
            for (int j = 0; j < arrays.length - i - 1; j++) {
                if (arrays[j] > arrays[j+1]) {
                    int temp = arrays[j];
                    arrays[j] = arrays[j+1];
                    arrays[j+1] = temp;
                }
            }
        }
    }

    private static void display(int[] arrays) {
        for (int v : arrays) System.out.print(v + " ");
    }
}

複雜度與特性

  • 時間:O(n²)(任何情況),雙重循環固定次數。
  • 空間:O(1)。
  • 穩定性:穩定(相等不交換)。
  • 優化:加標誌位,若某輪無交換則提前結束(最好 O(n))。

適用場景

教學演示、極小數據集、對代碼簡潔性要求極高且不關心性能的場合。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved