Pythonを使用してカウントソートアルゴリズムを実装するにはどうすればよいですか?

WBOY
リリース: 2023-09-22 08:33:54
オリジナル
688 人が閲覧しました

Pythonを使用してカウントソートアルゴリズムを実装するにはどうすればよいですか?

Python を使用してカウント並べ替えアルゴリズムを実装するにはどうすればよいですか?

カウンティング ソートは、特定の値範囲の整数または配列をソートするために使用できる線形時間計算量ソート アルゴリズムです。その基本的な考え方は、各要素が出現する回数を数え、その回数に基づいて要素を正しい位置に配置することです。以下では、Python を使用してカウントソートアルゴリズムを実装する方法と、具体的なコード例を紹介します。

まず第一に、カウントソートの核となる考え方を明確にする必要があります。カウントソートの実行手順は次のとおりです。

  1. ソートする配列内の最大の数値を見つけ、その最大数値に 1 を加えた長さの補助配列 count を作成して、その数値を保管します。各要素の出現回数;
  2. 並べ替える配列をトラバースし、各要素の出現回数をカウントし、それを count 配列に格納します;
  3. count 配列に対して累積演算を実行して、各要素の正しい位置インデックスを取得します;
  4. ソート対象の配列と同じ長さの結果配列 result を作成します;
  5. ソート対象の配列をトラバースし、要素をcount 配列内の要素値のインデックスに応じた正しい位置;
  6. ソートされた配列である結果配列 result を返します。

以下は、Python を使用してカウント並べ替えアルゴリズムを実装するコード例です:

def counting_sort(arr):
    # 找出最大值
    max_val = max(arr)
    # 创建辅助数组count,并初始化为0
    count = [0] * (max_val + 1)

    # 统计每个元素出现的次数
    for num in arr:
        count[num] += 1

    # 对count数组进行累加操作
    for i in range(1, len(count)):
        count[i] += count[i - 1]

    # 创建结果数组result
    result = [0] * len(arr)

    # 将元素放置到正确的位置上
    for num in arr:
        index = count[num] - 1
        result[index] = num
        count[num] -= 1

    # 返回结果数组
    return result
ログイン後にコピー

次に、次の方法でカウント並べ替えアルゴリズムをテストできます:

arr = [4, 2, 3, 4, 1]
sorted_arr = counting_sort(arr)
print(sorted_arr)
ログイン後にコピー

Run上記のコードの場合、出力結果は [1, 2, 3, 4, 4] となります。

上記のコード例を通じて、カウント ソート アルゴリズムの実装手順が比較的単純であることがわかります。これは、特定の値の範囲を持つ配列に対して非常に効率的なソート アルゴリズムです。この記事が、カウント並べ替えアルゴリズムの理解と使用に役立つことを願っています。

以上がPythonを使用してカウントソートアルゴリズムを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート