இந்த விவரங்கள் டுடோரியலில், அதன் செயல்பாட்டைக் காண்பிப்போம் stable_sort() C++ இல்.
C++ இல் stable_sort() செயல்பாட்டை எவ்வாறு பயன்படுத்துவது
C++ இல், தி stable_sort() ஒரு நிலையான நூலக அல்காரிதம் ஆகும், இது உறுப்புகளை அதிகரிக்கும் வரிசையில் ஒழுங்குபடுத்துகிறது மற்றும் சமமான உறுப்புகளுக்கு அதே வரிசையை வைத்திருக்கிறது. இதன் பொருள் இரண்டு கூறுகள் சமமாக இருந்தால், வரிசைப்படுத்துவதற்கு முன் கொள்கலனில் முதலில் தோன்றும் உறுப்பு வரிசைப்படுத்தப்பட்ட பட்டியலில் முதலில் தோன்றும். கன்டெய்னரை (வரிசைகள், திசையன்கள், இணைக்கப்பட்ட பட்டியல்கள்) மீண்டும் மீண்டும் பிரித்து, தனித்தனியாக வரிசைப்படுத்தி, வரிசைப்படுத்தப்பட்ட கொள்கலனைப் பெற அவற்றை ஒன்றிணைப்பதன் மூலம் இந்த செயல்பாடு செயல்படுகிறது. கீழ் வருகிறது <வழிமுறை> தலைப்பு கோப்பு.
பயன்படுத்துவதற்கான பொதுவான தொடரியல் stable_sort() C++ இல் உள்ளது:
நிலையான_வரிசை ( முதலில் RandomAccessIterator , RandomAccessIterator கடைசியாக உள்ளது ) ;
இங்கே, தி முதலில் வரிசைப்படுத்தப்பட வேண்டிய வரம்பில் முதல் உறுப்பைச் சுட்டிக் காட்டும் இடிரேட்டர், மற்றும் கடந்த வரிசைப்படுத்தப்பட வேண்டிய வரம்பில் உள்ள கடைசி உறுப்பிற்குப் பிறகு உறுப்பைச் சுட்டிக் காட்டும் செயலி.
தி stable_sort() செயல்பாடு [முதல், கடைசி] வரம்பில் உள்ளீடுகளை வரிசைப்படுத்த, குறையாத வரிசையைப் பயன்படுத்துகிறது, அதாவது, சிறியது முதல் பெரிய உறுப்பு வரை. செயல்பாடு முன்னிருப்பாக உருப்படிகளை ஒப்பிடுகிறது ஆபரேட்டரை விட குறைவாக (<).
எடுத்துக்காட்டு 1
கீழே உள்ள உதாரணக் குறியீட்டைக் கவனியுங்கள், இந்தக் குறியீட்டில், நாங்கள் உருவாக்கியுள்ளோம் திசையன் பட்டியல் மற்றும் சில மதிப்புகளுடன் அதை துவக்கியது. அடுத்து, நாங்கள் பயன்படுத்தினோம் stable_sort() கொடுக்கப்பட்ட வெக்டரின் மதிப்புகளை ஏறுவரிசையில் வரிசைப்படுத்த. வரிசைப்படுத்தப்படாத மற்றும் வரிசைப்படுத்தப்பட்ட திசையன்கள் வரம்பு அடிப்படையிலான வளையத்தைப் பயன்படுத்தி கன்சோலில் அச்சிடப்படுகின்றன.
##
#
பெயர்வெளி std ஐப் பயன்படுத்துகிறது ;
முழு எண்ணாக முக்கிய ( )
{
திசையன் < முழு எண்ணாக > பட்டியல் = { 5 , 2 , 25 , 4 , 9 , 33 , 38 , 26 } ;
கூட் << 'வரிசைப்படுத்துவதற்கு முன் எண்கள்:' ;
ஒவ்வொரு ( பட்டியல். தொடங்கும் ( ) , பட்டியல். முடிவு ( ) , [ ] ( முழு எண்ணாக எக்ஸ் ) {
கூட் << எக்ஸ் << '' ;
} ) ;
நிலையான_வரிசை ( பட்டியல். தொடங்கும் ( ) , பட்டியல். முடிவு ( ) ) ;
கூட் << ' \n வரிசைப்படுத்திய பின் எண்கள்: ' ;
ஒவ்வொரு ( பட்டியல். தொடங்கும் ( ) , பட்டியல். முடிவு ( ) , [ ] ( முழு எண்ணாக எக்ஸ் ) {
கூட் << எக்ஸ் << '' ;
} ) ;
திரும்ப 0 ;
}
உதாரணம் 2
கீழே கொடுக்கப்பட்டுள்ள எடுத்துக்காட்டில், ஒரு முழு எண் வரிசையை உருவாக்கி அதை சில மதிப்புகளுடன் துவக்கியுள்ளோம். பின்னர் இயல்பாக, தி stable_sort() உறுப்புகளை ஏறுவரிசையில் வரிசைப்படுத்துகிறது:
##
பெயர்வெளி std ஐப் பயன்படுத்துகிறது ;
முழு எண்ணாக முக்கிய ( )
{
முழு எண்ணாக வரிசை [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;
முழு எண்ணாக n = அளவு ( வரிசை ) / அளவு ( வரிசை [ 0 ] ) ;
கூட் << 'அசல் வரிசை: \n ' ;
க்கான ( முழு எண்ணாக நான் = 0 ; நான் < n ; ++ நான் ) {
கூட் << வரிசை [ நான் ] << '' ;
}
நிலையான_வரிசை ( வரிசை , வரிசை + n ) ;
கூட் << ' \n வரிசைப்படுத்திய பின் வரிசை: \n ' ;
க்கான ( முழு எண்ணாக நான் = 0 ; நான் < n ; ++ நான் ) {
கூட் << வரிசை [ நான் ] << '' ;
}
திரும்ப 0 ;
}
எடுத்துக்காட்டு 3
தி நிலையான_வரிசை உறுப்பை வரிசைப்படுத்துவதற்கான வரிசையைக் குறிப்பிட மூன்றாவது அளவுருவை எடுக்கும். கீழே உள்ள எடுத்துக்காட்டில், நாங்கள் பயன்படுத்தினோம் பெரிய () உடன் செயல்பாடு stable_sort() வரிசையின் கூறுகளை இறங்கு வரிசையில் வரிசைப்படுத்த
##
பெயர்வெளி std ஐப் பயன்படுத்துகிறது ;
முழு எண்ணாக முக்கிய ( )
{
முழு எண்ணாக வரிசை [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;
முழு எண்ணாக n = அளவு ( வரிசை ) / அளவு ( வரிசை [ 0 ] ) ;
கூட் << 'அசல் வரிசை: \n ' ;
க்கான ( முழு எண்ணாக நான் = 0 ; நான் < n ; ++ நான் ) {
கூட் << வரிசை [ நான் ] << '' ;
}
நிலையான_வரிசை ( வரிசை , வரிசை + n , அதிக < முழு எண்ணாக > ( ) ) ;
கூட் << ' \n வரிசைப்படுத்திய பின் வரிசை: \n ' ;
க்கான ( முழு எண்ணாக நான் = 0 ; நான் < n ; ++ நான் ) {
கூட் << வரிசை [ நான் ] << '' ;
}
திரும்ப 0 ;
}
பாட்டம் லைன்
தி stable_sort() C++ இல் உள்ள செயல்பாடு என்பது ஒரு கொள்கலனில் உள்ள கூறுகளை குறையாத வரிசையில் வரிசைப்படுத்தப் பயன்படும் ஒரு நிலையான நூலக வழிமுறையாகும், அதே மதிப்புகளைக் கொண்ட ஒரு கொள்கலனில் உள்ள உறுப்புகளின் ஒப்பீட்டு வரிசையை பராமரிக்கிறது. வரிசைகள், திசையன்கள் மற்றும் இணைக்கப்பட்ட பட்டியல்கள் போன்ற பல்வேறு கொள்கலன்களுடன் இதைப் பயன்படுத்தலாம். கூடுதலாக, உறுப்புகளை வரிசைப்படுத்துவதற்கான வரிசையைக் குறிப்பிட இது மூன்றாவது அளவுருவை எடுக்கும்.