時間と空間の複雑さの分析 -- バブル ソート アルゴリズム

時間と空間の複雑さの分析 – バブル ソート アルゴリズム

だいたい

バブルソートアルゴリズムとは?

バブルソーティングのアルゴリズムはnラウンドの大規模な交換を行うもので、各ラウンドは隣り合う2つの数字の大きさを比較して交換を行います。

[外部リンクの画像転送に失敗しました。ソース サイトにアンチリーチング メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-WFG1VuGd-1661504862731) (C:\Users\dongxu.kwb\Downloads\Unnamed file) (1)].png)

コード部分

/**
 * @author `dongxu.kwb`
 * @date `2022/8/26`
 */
public class PaoSort {
    public static void main(String[] args) {
        int[] arr = {79,3213,3,5,45,65};
        paoSort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
    public static void paoSort(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length-1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j + 1];
                    arr[j + 1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }
}

それの時間複雑度分析と空間複雑度分析

最初に時間の複雑さについて話しましょう。

時間の複雑さに影響を与えるのは、これらの 2 つのforループです。

or (int i = 0; i < arr.length; i++) {
    
    
            for (int j = 0; j < arr.length-1; j++) {
    
    
             
                }
            }

最初の for ループは時間を実行し、その内部にループをnネストするため、時間の計算量は O( n 2 n^{2}n-1n(n-1)n2 )

空間の複雑さについて話しましょう

スペースの複雑さ 作成された変数は、tempスペースの複雑さが O(1) であるためです。

おすすめ

転載: blog.csdn.net/abaidaye/article/details/126547106