சி இல் ரேடிக்ஸ் வரிசைப்படுத்தும் திட்டத்தை எவ்வாறு சிறப்பாக செயல்படுத்துவது?



இந்த கட்டுரை உங்களை சி இன் ரேடிக்ஸ் வரிசைப்படுத்துதல் திட்டத்திற்கு அறிமுகப்படுத்துகிறது மற்றும் சிறந்த புரிதலுக்கான ஒரு நிரல் ஆர்ப்பாட்டத்தைப் பின்தொடரும்.

இந்த கட்டுரை உங்களுக்கு ரேடிக்ஸ் வரிசையை அறிமுகப்படுத்துகிறது மற்றும் ரேடிக்ஸ் வரிசையை எவ்வாறு செயல்படுத்துவது என்று உங்களுக்குத் தெரிவிக்கும் சி. இல் பின்வரும் சுட்டிகள் இந்த கட்டுரையில் விவரிக்கப்படும்,

எனவே பின்னர் தொடங்குவோம்,





எளிமையான சொற்களில், வரிசைப்படுத்துதல் என்பது கொடுக்கப்பட்ட கூறுகளை முறையான வரிசையில் ஏற்பாடு செய்வதாகும். வரிசையாக்கம் பெரும்பாலான வழிமுறைகளில் செய்யப்படுகிறது, ஏனெனில் இது தேடலை எளிதாக்குகிறது, இது இறுதியில் வழிமுறையை திறம்பட செய்கிறது. இந்த வலைப்பதிவில் பொதுவாகப் பயன்படுத்தப்படும் விதை வழிமுறைகளில் ஒன்றைப் புரிந்துகொள்வோம், அதாவது ரேடிக்ஸ் வரிசை.

ரேடிக்ஸ் வரிசையாக்கம் ஒரு ஒப்பீட்டு அல்லாத முழு வரிசை வரிசையாக்க வழிமுறை ஆகும். குறைந்தபட்சம் குறிப்பிடத்தக்க இலக்கத்திலிருந்து (அதாவது வலதுபுறத்தில் உள்ள இலக்கத்திலிருந்து) தொடங்கி மிக முக்கியமான இலக்கத்திற்கு (அதாவது இடதுபுறத்தில் உள்ள இலக்கத்தில்) இலக்க வரிசைப்படுத்துவதன் மூலம் இது இலக்கத்தை செய்கிறது. ரேடிக்ஸ் வரிசையாக்கம் வரிசைப்படுத்த ஒரு சப்ரூட்டினாக எண்ணும் வரிசையைப் பயன்படுத்துகிறது.
ஒப்பீட்டு அடிப்படையிலான வரிசையாக்க வழிமுறையின் (ஹீப் வரிசையாக்கம், விரைவு வரிசைப்படுத்தல், ஒன்றிணைத்தல் வரிசைப்படுத்துதல் போன்றவை) & ஒமேகா (nLogn) ஆகும், மேலும் அவை nLogn க்கு அப்பால் மேம்படுத்தப்படாது. எண்ணும் வரிசையைப் பற்றி நாம் பேசினால், இது O (n + k) நேர சிக்கலுடன் ஒரு நேரியல் நேர வரிசையாக்க வழிமுறையாகும், இங்கு வரம்பு 1 முதல் k வரை இருக்கும். இப்போது, ​​எண்ணும் வரிசையின் சிக்கல் என்னவென்றால், உறுப்புகள் 1 முதல் n2 வரை இருக்கும்போது O (n2) எடுக்கும்.



எனவே, நேரியல் நேரத்தில் 1 முதல் n2 வரையிலான உறுப்புகளுடன் ஒரு வரிசையை வரிசைப்படுத்த, எங்களுக்கு ரேடிக்ஸ் வரிசை தேவை. ரேடிக்ஸ் வரிசை வரிசை இலக்கத்தை குறைந்தபட்சம் குறிப்பிடத்தக்க இலக்கத்திலிருந்து தொடங்கி மிக முக்கியமான இலக்கத்திற்கு வரிசைப்படுத்துகிறது. ரேடிக்ஸ் வரிசையாக்கம் வரிசைப்படுத்த ஒரு சப்ரூட்டினாக எண்ணும் வரிசையைப் பயன்படுத்துகிறது.

சி, இல் ரேடிக்ஸ் வரிசைப்படுத்தல் திட்டம் குறித்த இந்த கட்டுரையுடன் நகர்கிறது,

ரேடிக்ஸ் வரிசை அல்காரிதம்

வலதுபுறத்தில் உள்ள குறைந்தபட்ச குறிப்பிடத்தக்க இலக்கத்திலிருந்து தொடங்கி, இடதுபுறத்தில் உள்ள மிக முக்கியமான இலக்கத்தை நோக்கி நகரும் அனைத்து இலக்கங்களுக்கும் பின்வரும் படிகளைச் செய்யவும்.



தற்போதைய இலக்கத்திற்கு ஏற்ப எண்ணும் வரிசையைப் பயன்படுத்தி உறுப்புகளை வரிசைப்படுத்தவும்.
உதாரணமாக:

ஜாவாவில் லாகரை எவ்வாறு பயன்படுத்துவது

அசல் வரிசை:
140, 65, 85, 110, 612, 54, 12, 86

மிகக் குறைந்த இலக்கத்தை வரிசைப்படுத்துதல், அதாவது ஒருவரின் இடத்தில், தருகிறது

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

குறிப்பு: 12 க்கு முன் 612 தோன்றும், மற்றும் வரிசையாக்கம் ஒருவரின் இலக்கத்திற்கு மட்டுமே செய்யப்படுகிறது, இதனால் 612 இந்த மறு செய்கைக்குப் பிறகு 12 க்கு முன் தோன்றும்.

அடுத்த இலக்கத்தால் வரிசைப்படுத்துதல், அதாவது 10 வி இடத்தில், கொடுக்கிறது:

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

மிக முக்கியமான இலக்கத்தால் வரிசைப்படுத்துதல், அதாவது 100 களின் இடத்தில் உள்ளது:

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

சி, இல் ரேடிக்ஸ் வரிசைப்படுத்தல் திட்டம் குறித்த இந்த கட்டுரையுடன் நகர்கிறது,

சி இல் ரேடிக்ஸ் வரிசைப்படுத்தல் திட்டம்

ரேடிக்ஸ் வரிசை செயல்பாட்டை முதலில் பாருங்கள்

ரேடிக்ஸ் வரிசை செயல்பாடு:

void radixsort (int array [], int n) {// அதிகபட்ச இலக்கங்களை அறிய மிகப்பெரிய எண்ணைப் பெறவும் int m = getMax (array, n) int dig // ஒவ்வொரு இலக்கத்திற்கும் எண்ணும் வகை செய்யப்படுகிறது (தோண்டி = 1 m / dig> 0 dig * = 10) countSort (வரிசை, n, தோண்டி)}

சி, இல் ரேடிக்ஸ் வரிசைப்படுத்தல் திட்டம் குறித்த இந்த கட்டுரையுடன் நகரும்,

வரிசை வரிசை செயல்பாடு:

void countSort (int array [], int n, int dig) {int வெளியீடு [n] int i, count [10] = {0} // எண்ணிக்கையில் நிகழ்வுகளின் சேமிப்பு எண்ணிக்கை [] for (i = 0 i= 0 i--) {வெளியீடு [எண்ணிக்கை [(வரிசை [i] / தோண்டி)% 10] - 1] = வரிசை [i] எண்ணிக்கை [(வரிசை [i] / தோண்டி)% 10] -} // நகலெடு வெளியீட்டு வரிசை arr [], எனவே arr [] now // தற்போதைய இலக்கத்தின் படி வரிசைப்படுத்தப்பட்ட எண்களைக் கொண்டுள்ளது (i = 0 i

முன்னேறி, ரேடிக்ஸ் வரிசையை செயல்படுத்த சி நிரலை எழுதுவோம்.

உதாரணமாக:

# அடங்கும் // மிகப்பெரிய எண்ணைக் கண்டுபிடிப்பதற்கான செயல்பாடு int getMax (int array [], int n) {int max = array [0] int i for (i = 1 i max) max = array [i] return max} // எண்ணிக்கையின் வரிசை வெற்றிட எண்ணிற்கான செயல்பாடு (int வரிசை [], int n, int dig) {int வெளியீடு [n] int i, count [10] = {0} // எண்ணிக்கையில் நிகழ்வுகளின் எண்ணிக்கையை [] (i = 0 நான்= 0 i--) {வெளியீடு [எண்ணிக்கை [(வரிசை [i] / தோண்டி)% 10] - 1] = வரிசை [i] எண்ணிக்கை [(வரிசை [i] / தோண்டி)% 10] -} // நகலெடு வெளியீட்டு வரிசை ar [], எனவே arr [] இப்போது // தற்போதைய இலக்கத்தின் படி வரிசைப்படுத்தப்பட்ட எண்களைக் கொண்டுள்ளது (i = 0 i 0 dig * = 10) countSort (array, n, dig)} // வரிசை வெற்றிடத்தை அச்சிடுவதற்கான செயல்பாடு அச்சிடு (int arr [], int n) {int i for (i = 0 i

வெளியீடு

சி- எடுரேகாவில் வெளியீடு- ரேடிக்ஸ் வரிசைப்படுத்தல் திட்டம்

இப்போது மேலேயுள்ள நிரலை இயக்கிய பிறகு, சி இல் உள்ள ரேடிக்ஸ் வரிசைப்படுத்தல் திட்டத்தை நீங்கள் புரிந்துகொண்டிருப்பீர்கள். ஆகவே, ‘ஜாவாவில் குவிக்சோர்ட்’ குறித்த இந்த கட்டுரையின் முடிவுக்கு வந்துள்ளோம். நீங்கள் மேலும் அறிய விரும்பினால், பாருங்கள் , நம்பகமான ஆன்லைன் கற்றல் நிறுவனம். எடுரேகாவின் ஜாவா ஜே 2 இஇ மற்றும் எஸ்ஓஏ பயிற்சி மற்றும் சான்றிதழ் பாடநெறி, முக்கிய மற்றும் மேம்பட்ட ஜாவா கருத்தாக்கங்களுக்கும், ஹைபர்னேட் & ஸ்பிரிங் போன்ற பல்வேறு ஜாவா கட்டமைப்புகளுக்கும் பயிற்சி அளிக்க வடிவமைக்கப்பட்டுள்ளது.

எங்களுக்கு ஒரு கேள்வி கிடைத்ததா? தயவுசெய்து இந்த வலைப்பதிவின் கருத்துகள் பிரிவில் குறிப்பிடவும், விரைவில் நாங்கள் உங்களைத் தொடர்புகொள்வோம்.

ஜாவாவில் ஒரு நிரலை முடிக்கவும்