首頁 > 後端開發 > Python教學 > 使用Python實作基數排序演算法原理的實例

使用Python實作基數排序演算法原理的實例

王林
發布: 2024-01-22 13:36:07
轉載
1265 人瀏覽過

基數排序演算法是桶排序演算法的一種,是將基於相同位置的值,進行分組排序。可能這麼說有點不好理解,可以看下面的基數排序演算法原理實例。

基底排序演算法原理實例

指定陣列[121,432,564,23,1,45,788],將陣列進行基數排序,如圖:

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

先進行個位數值的排序,再進行十位數值的排序,最後再排序百位數值,最後輸出經過排序後的數組為[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中文網其他相關文章!

相關標籤:
來源:163.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板