Python を使用して基数ソート アルゴリズムの原理を実装する例

王林
リリース: 2024-01-22 13:36:07
転載
1229 人が閲覧しました

基数ソート アルゴリズムはバケット ソート アルゴリズムの一種で、同じ位置に基づいて値をグループにソートします。少しわかりにくいかもしれませんが、基数ソート アルゴリズムの原理を示す次の例を見てください。

基数ソート アルゴリズムの原理例

図に示すように、配列 [121,432,564,23,1,45,788] を指定し、基数で配列をソートします。

基数排序算法原理实例 Python实现基数排序算法

##最初に 1 桁の値を並べ替え、次に 10 桁の値を並べ替え、最後に 100 桁の値を並べ替えます。数値を入力し、最後にソートされた結果を出力します。配列は [001,023,045,121,432,564,788]

基数ソート アルゴリズムを実装する Python コードです。

def countingSort(array, place):
    size = len(array)
    output = [0] * size
    count = [0] * 10

    for i in range(0, size):
        index = array[i] // place
        count[index % 10] += 1

 
    for i in range(1, 10):
        count[i] += count[i - 1]

    i = size - 1
    while i >= 0:
        index = array[i] // place
        output[count[index % 10] - 1] = array[i]
        count[index % 10] -= 1
        i -= 1

    for i in range(0, size):
        array[i] = output[i]

def radixSort(array):
    # Get maximum element
    max_element = max(array)

    place = 1
    while max_element // place > 0:
        countingSort(array, place)
        place *= 10

data = [121, 432, 564, 23, 1, 45, 788]
radixSort(data)
print(data)
ログイン後にコピー

以上がPython を使用して基数ソート アルゴリズムの原理を実装する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:163.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!