Как лучше всего реализовать программу сортировки Radix на C?



Эта статья познакомит вас с программой Radix Sort на языке C и последует за ней программной демонстрацией для лучшего понимания.

Эта статья познакомит вас с Radix Sort и расскажет, как реализовать Radix Sort. в C. В этой статье будут рассмотрены следующие указатели,

Итак, давайте тогда приступим,





Проще говоря, сортировка означает расположение заданных элементов в систематическом порядке. Сортировка выполняется в большинстве алгоритмов, поскольку она упрощает поиск, что в конечном итоге делает алгоритм более эффективным. В этом блоге мы поймем один из наиболее часто используемых алгоритмов сортировки, то есть сортировку по Radix.

Radix sort - это алгоритм сортировки целых чисел без сравнения. Он выполняет сортировку по цифрам, начиная с наименее значащей цифры (т. Е. Цифры, представленной справа), до наиболее значимой цифры (т.е. цифры, присутствующей слева). Radix sort использует сортировку с подсчетом в качестве подпрограммы для сортировки.
Нижняя граница для алгоритма сортировки на основе сравнения (такого как сортировка по куче, быстрая сортировка, сортировка слиянием) - & Omega (nLogn), и они не могут быть улучшены за пределами nLogn. Если мы говорим о сортировке с подсчетом, это алгоритм линейной сортировки по времени с временной сложностью O (n + k), где диапазон находится в диапазоне от 1 до k. Теперь проблема с подсчетом сортировки в том, что требуется O (n2), когда элементы находятся в диапазоне от 1 до n2.



Итак, чтобы отсортировать массив с элементами в диапазоне от 1 до n2 за линейное время, нам нужна радиальная сортировка. Radix sort сортирует цифру массива за цифрой, начиная с наименее значащей цифры до самой старшей. Radix sort использует сортировку с подсчетом в качестве подпрограммы для сортировки.

Продолжая эту статью о программе Radix Sort в C,

как сделать с силой в java

Алгоритм сортировки Radix

Выполните следующие шаги для всех цифр, начиная с наименее значащей цифры справа, двигаясь к наиболее значимой цифре слева.



Отсортируйте элементы, используя сортировку счетом в соответствии с текущей цифрой.
Пример:

Исходный массив:
140, 65, 85, 110, 612, 54, 12, 86

Сортировка наименее значащей цифры, т. Е. По единице, дает

140, 110, 612, 12, 54, 65, 85, 86

ПРИМЕЧАНИЕ. Поскольку 612 появляется перед 12, а сортировка выполняется только для одной цифры, таким образом, 612 появляется перед 12 после этой итерации.

Сортировка по следующей цифре, то есть по 10-му разряду, дает:

110, 612, 12, 140, 54, 65, 85, 86

в чем заключается ключевая ошибка в Python

Сортировка по старшему разряду, то есть по разряду сотен, дает:

012, 054, 065, 085, 086, 110, 140, 612

Продолжая эту статью о программе Radix Sort в C,

Программа сортировки Radix в C

Сначала взгляните на функцию сортировки Radix

тип данных даты в sql

Функция Radix Sort:

void radixsort (int array [], int n) {// Получить наибольшее число, чтобы узнать максимальное количество цифр int m = getMax (array, n) int dig // Отсчет сортировки выполняется для каждой цифры for (dig = 1 m / dig> 0 dig * = 10) countSort (array, n, dig)}

Продолжая эту статью о программе Radix Sort в C,

Функция сортировки счетчика:

void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Сохраняем количество вхождений в count [] для (i = 0 i= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Копируем вывести массив в arr [], так что теперь arr [] // содержит отсортированные числа в соответствии с текущей цифрой for (i = 0 i

Забегая вперед, напишем программу на языке C для реализации сортировки Radix.

Пример:

#include // Функция для поиска наибольшего числа int getMax (int array [], int n) {int max = array [0] int i for (i = 1 i max) max = array [i] return max} // Функция для сортировки счетчика void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Сохранение количества вхождений в count [] для (i = 0 я= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Копируем вывести массив в arr [], так что теперь arr [] // содержит отсортированные числа в соответствии с текущей цифрой for (i = 0 i 0 dig * = 10) countSort (array, n, dig)} // Функция для печати массива void print (int arr [], int n) {int i for (i = 0 i

Вывод

Программа вывода - Radix Sort в C - Edureka

Теперь, после выполнения вышеуказанной программы, вы бы поняли, как работает программа Radix Sort на языке C. Таким образом, мы подошли к концу этой статьи о «Быстрой сортировке в Java». Если вы хотите узнать больше, ознакомьтесь с , надежная компания онлайн-обучения. Курс обучения и сертификации по Java J2EE и SOA от Edureka разработан, чтобы научить вас базовым и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этого блога, и мы свяжемся с вами как можно скорее.