Paano Pinakamahusay na Pagpapatupad ng Programang Radix Sort Sa C?



Ipakilala ka ng artikulong ito sa Radix Sort Program In C at susundan ito ng isang programmatic demonstration para sa mas mahusay na pag-unawa.

Ipakilala sa iyo ng artikulong ito ang Radix Sort at sasabihin sa iyo kung paano ipatupad ang Radix Sort sa C. Ang mga sumusunod na pahiwatig ay sasaklawin sa artikulong ito,

Kaya't magsimula tayo noon,





Sa mga simpleng salita, ang pag-uuri ay nangangahulugang pag-aayos ng mga naibigay na elemento sa isang sistematikong kaayusan. Ang pag-uuri ay ginagawa sa karamihan ng mga algorithm dahil ginagawang madali ang paghahanap na kalaunan ay ginagawang mabisa ang algorithm. Sa blog na ito maiintindihan natin ang isa sa karaniwang ginagamit na mga algorithm ng soring ibig sabihin, uri ng Radix.

pumasa sa pamamagitan ng halaga vs pumasa sa pamamagitan ng sanggunian java

Ang pag-uuri ng Radix ay isang algorithm na hindi umaihahambing na pag-uuri ng integer. Gumagawa ito ng digit ayon sa pag-uuri ng digit na nagsisimula sa hindi bababa sa makabuluhang digit (ibig sabihin, ang digit na nasa kanan) hanggang sa pinaka-makabuluhang digit (ibig sabihin, ang digit na naroroon sa kaliwa). Ang pag-uuri ng Radix ay gumagamit ng pag-uuri ng pag-uuri bilang isang subroutine upang pag-uri-uriin.
Ang mas mababang hangganan para sa Paghahambing batay sa pag-uuri ng algorithm (tulad ng Heap sort, Quick Sort, Merge Sort) ay & Omega (nLogn), at hindi nila ito mapapabuti nang lampas sa nLogn. Kung pinag-uusapan natin ang tungkol sa pagbibilang ng pag-uuri, ito ay isang linear time sorting algorithm na may kumplikadong oras ng O (n + k), kung saan ang saklaw ay namamalagi sa pagitan ng 1 hanggang k. Ngayon, ang problema sa pagbibilang ng uri ay, tumatagal ng O (n2) kapag ang mga elemento ay mula 1 hanggang n2.



Kaya, upang pag-uri-uriin ang isang array na may mga elemento na mula 1 hanggang n2 sa linear na oras, kailangan namin ng uri ng radix. Pinagsasama-sama ng Radix ang array digit ayon sa digit na nagsisimula mula sa hindi bababa sa makabuluhang digit hanggang sa pinaka makabuluhang digit. Ang pag-uuri ng Radix ay gumagamit ng pag-uuri ng pag-uuri bilang isang subroutine upang pag-uri-uriin.

Nagpapatuloy sa artikulong ito sa Radix Sort Program In C,

Radix Sort Algorithm

Gawin ang mga sumusunod na hakbang para sa lahat ng mga digit na nagsisimula sa pinakakaunting makabuluhang digit na naroroon sa kanan, patungo sa pinaka makabuluhang digit na naroroon sa kaliwa.



Pagbukud-bukurin ang mga elemento gamit ang pagbibilang ng pag-uuri ayon sa kasalukuyang digit.
Halimbawa:

Orihinal na Array:
140, 65, 85, 110, 612, 54, 12, 86

Ang pag-uuri ng hindi bababa sa makabuluhang digit na hal sa isang lugar, ay nagbibigay

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

TANDAAN: Tulad ng paglitaw ng 612 bago ang 12, at ang pag-uuri ay ginagawa lamang para sa isang digit, sa gayon ang 612 ay lilitaw bago ang 12 pagkatapos ng pag-ulit na ito.

Ang pag-uuri ayon sa susunod na digit, ibig sabihin sa lugar na 10s, ay nagbibigay ng:

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

Ang pag-uuri ayon sa pinakamahalagang digit, ibig sabihin, naroroon sa lugar na 100s, ay nagbibigay ng:

kung paano itakda ang classpath sa java sa windows 10

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

Nagpapatuloy sa artikulong ito sa Radix Sort Program In C,

Radix Sort Program Sa C

Una tingnan ang pagpapaandar ng uri ng Radix

Pag-andar ng Radix Sort:

void radixsort (int array [], int n) {// Kunin ang pinakamalaking bilang upang malaman ang maximum na bilang ng mga digit na int m = getMax (array, n) int dig // Ang pagbibilang ng uri ay isinasagawa para sa bawat digit para sa (dig = 1 m / dig> 0 dig * = 10) countSort (array, n, dig)}

Nagpapatuloy sa artikulong ito sa Radix Sort Program In C,

Bilangin ang Pag-uuri-uriin:

void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Bilang ng mga pangyayari sa tindahan sa bilang [] para sa (i = 0 i= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Kopyahin ang output array sa arr [], upang ang arr [] ngayon // ay naglalaman ng mga pinagsunod-sunod na numero ayon sa kasalukuyang digit para sa (i = 0 i

Pagsulong ng maaga, magsulat tayo ng isang programa ng C upang ipatupad ang uri ng Radix.

Halimbawa:

#include // Function to find the Largest Number int getMax (int array [], int n) {int max = array [0] int i for (i = 1 i max) max = array [i] return max} // Pag-andar para sa Count sort void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Bilang ng mga pangyayari sa tindahan sa bilang [] para sa (i = 0 ako= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Kopyahin ang output array sa arr [], upang ang arr [] ngayon // ay naglalaman ng mga pinagsunod-sunod na mga numero ayon sa kasalukuyang digit para sa (i = 0 i 0 dig * = 10) countSort (array, n, dig)} // Function to Print Array void i-print (int arr [], int n) {int i para sa (i = 0 i

Paglabas

makakuha ng haba ng array sa javascript

Output- Radix Sort Program sa C- Edureka

Ngayon pagkatapos maipatupad ang nasa itaas na programa ay naintindihan mo ang Radix Sort Program Sa C. Sa gayon natapos na kami sa artikulong ito sa 'Quicksort in Java'. Kung nais mong matuto nang higit pa, tingnan ang , isang pinagkakatiwalaang kumpanya sa online na pag-aaral. Ang kurso sa pagsasanay at sertipikasyon ng Java J2EE at SOA ng Edureka ay idinisenyo upang sanayin ka para sa parehong core at advanced na mga konsepto ng Java kasama ang iba't ibang mga balangkas ng Java tulad ng Hibernate & Spring.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng blog na ito at babalikan ka namin sa lalong madaling panahon.