Рубрики

Программа Python для сортировки по Radix

Алгоритм сортировки по радиксу
1) Выполните следующие действия для каждой цифры i, где i изменяется от наименее значимой цифры до самой значимой цифры.
…………. a) Сортировать входной массив, используя сортировку с подсчетом (или любую устойчивую сортировку) по i / '-ому разряду.

питон

# Python программа для реализации Radix Sort

  
# Функция для подсчета вида arr [] в соответствии с
# цифра, представленная эксп.

def countingSort(arr, exp1):

  

    n = len(arr)

  

    # Элементы массива вывода, которые будут отсортированы об

    output = [0] * (n)

  

    # инициализировать массив count как 0

    count = [0] * (10)

  

    # Хранить количество вхождений в count []

    for i in range(0, n):

        index = (arr[i]/exp1)

        count[ (index)%10 ] += 1

  

    # Измените count [i] так, чтобы count [i] теперь содержал фактический

    # позиция этой цифры в выходном массиве

    for i in range(1,10):

        count[i] += count[i-1]

  

    # Построить выходной массив

    i = n-1

    while i>=0:

        index = (arr[i]/exp1)

        output[ count[ (index)%10 ] - 1] = arr[i]

        count[ (index)%10 ] -= 1

        i -= 1

  

    # Копирование выходного массива в arr [],

    # чтобы arr теперь содержал отсортированные числа

    i = 0

    for i in range(0,len(arr)):

        arr[i] = output[i]

  
# Способ сделать сортировку по Radix

def radixSort(arr):

  

    # Найти максимальное число, чтобы узнать количество цифр

    max1 = max(arr)

  

    # Делать подсчет сортировки для каждой цифры. Обратите внимание, что вместо

    количество проходящих цифр, передается опыт. опыт 10 ^ я

    # где я текущая цифра

    exp = 1

    while max1/exp > 0:

        countingSort(arr,exp)

        exp *= 10

  
# Код драйвера для проверки выше

arr = [ 170, 45, 75, 90, 802, 24, 2, 66]

radixSort(arr)

  

for i in range(len(arr)):

    print(arr[i]),

  
# Этот код предоставлен Мохитом Кумрой

Пожалуйста, обратитесь к полной статье о Radix Sort для более подробной информации!

Рекомендуемые посты:

Программа Python для сортировки по Radix

0.00 (0%) 0 votes