Как да реализираме най-добре програмата за сортиране на Radix в C?



Тази статия ще ви запознае с програмата за сортиране на Radix в C и ще я проследи в програмна демонстрация за по-добро разбиране.

Тази статия ще ви представи Radix Sort и ще ви каже как да внедрите Radix Sort в C. Следните указания ще бъдат разгледани в тази статия,

Нека започнем тогава,





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

Radix сортирането е несравнителен алгоритъм за сортиране на цяло число. Той прави цифра по цифра сортиране, започвайки от най-малко значима цифра (т.е. цифра, присъстваща вдясно) до най-значимата цифра (т.е. цифра, присъстваща вляво). Сортирането Radix използва сортиране на преброяване като подпрограма за сортиране.
Долната граница на базиран на сравнение алгоритъм за сортиране (като Heap sort, Quick Sort, Merge Sort) е & Omega (nLogn) и те не могат да бъдат подобрени след nLogn. Ако говорим за броене на сортиране, това е алгоритъм за линейно сортиране по време със сложност на времето O (n + k), където диапазонът е между 1 и k. Сега проблемът с преброяването на сортирането е, че отнема O (n2), когато елементите варират от 1 до n2.



Така че, за да сортираме масив с елементи, които варират от 1 до n2 за линейно време, ни трябва сортиране по radix. Radix сортира сортира масива цифра по цифра, започвайки от най-малко значимата цифра до най-значимата цифра. Сортирането Radix използва сортиране на преброяване като подпрограма за сортиране.

Продължавайки с тази статия за Radix Sort Program In C,

Алгоритъм за сортиране на Radix

Изпълнете следните стъпки за всички цифри, започвайки от най-малко значимата цифра, присъстваща вдясно, като се придвижвате към най-значимата цифра, присъстваща вляво.



претоварване на функцията в c ++

Сортирайте елементите с помощта на сортиране на преброяване според текущата цифра.
Пример:

Оригинален масив:
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

Сортирането по най-значимата цифра, т.е. присъства на мястото на 100-те, дава:

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

Продължавайки с тази статия за Radix Sort Program In C,

Програма за сортиране на Radix в C

Първо погледнете функцията за сортиране на Radix

Функция за сортиране на Radix:

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

Продължавайки с тази статия за Radix Sort Program In C,

Функция за сортиране на преброяване:

void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Съхраняваме броя на повторенията в count [] за (i = 0 i= 0 i--) {изход [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Копиране на извеждане на масив към arr [], така че arr [] сега // съдържа сортирани числа според текущата цифра за (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} // Функция за Count sort void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Съхранява броя на появите в count [] за (i = 0 i= 0 i--) {изход [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Копиране на извеждане на масив към arr [], така че arr [] сега // съдържа сортирани числа според текущата цифра за (i = 0 i 0 dig * = 10) countSort (array, n, dig)} // Функция за отпечатване на масив void print (int arr [], int n) {int i за (i = 0 i

Изход

Изход - програма за сортиране на Radix в C- Edureka

Сега след изпълнението на горната програма бихте разбрали програмата за сортиране на Radix в C. По този начин стигнахме до края на тази статия за „Quicksort в Java“. Ако искате да научите повече, разгледайте , доверена компания за онлайн обучение. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен да ви обучи както за основните, така и за разширените Java концепции, заедно с различни Java рамки като Hibernate & Spring.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог и ние ще се свържем с вас възможно най-скоро.