এই বিস্তারিত টিউটোরিয়ালে, আমরা এর কাজ দেখাব stable_sort() C++ এ।
কিভাবে C++ এ stable_sort() ফাংশন ব্যবহার করবেন
C++ এ, stable_sort() একটি স্ট্যান্ডার্ড লাইব্রেরি অ্যালগরিদম যা উপাদানগুলিকে ক্রমবর্ধমান ক্রমে সাজায় এবং সমতুল্য উপাদানগুলির জন্য একই ক্রম রাখে। এর মানে হল যদি দুটি উপাদান সমান হয়, বাছাই করার আগে কন্টেইনারে যে উপাদানটি প্রথমে প্রদর্শিত হয় তা এখনও সাজানো তালিকায় প্রথমে উপস্থিত হবে। এই ফাংশনটি বারবার কন্টেইনার (অ্যারে, ভেক্টর, লিঙ্ক করা তালিকা) ভাগ করে, আলাদাভাবে বাছাই করে এবং তারপর সাজানো ধারক পেতে তাদের একত্রিত করে কাজ করে। এটি অধীনে আসে <অ্যালগরিদম> হেডার ফাইল।
ব্যবহার করার জন্য সাধারণ সিনট্যাক্স stable_sort() C++ এ হল:
stable_sort ( RandomAccessIterator প্রথমে , RandomAccessIterator শেষ ) ;
এখানে প্রথম বাছাই করা সীমার মধ্যে প্রথম উপাদান নির্দেশ করে পুনরাবৃত্তিকারী, এবং শেষ ক্রমানুসারে শেষ উপাদানটির পরে উপাদানটির দিকে নির্দেশ করে পুনরাবৃত্তিকারী।
দ্য stable_sort() ফাংশন পরিসরে [প্রথম, শেষ] এন্ট্রি সাজানোর জন্য অ-হ্রাসমান ক্রম ব্যবহার করে, অর্থাৎ, ক্ষুদ্রতম থেকে বৃহত্তম উপাদান পর্যন্ত। ফাংশন ডিফল্টভাবে আইটেমগুলির সাথে তুলনা করে কম-অপারেটর (<)।
উদাহরণ 1
নীচের উদাহরণ কোড বিবেচনা করুন, এই কোডে, আমরা তৈরি করেছি ভেক্টর তালিকা এবং কিছু মান দিয়ে এটি শুরু করুন। পরবর্তী, আমরা ব্যবহার stable_sort() প্রদত্ত ভেক্টরের মানগুলিকে আরোহী ক্রমে সাজাতে। সাজানো এবং সাজানো ভেক্টর রেঞ্জ-ভিত্তিক লুপ ব্যবহার করে কনসোলে প্রিন্ট করা হয়।
# অন্তর্ভুক্ত করুন# অন্তর্ভুক্ত <ভেক্টর>
# অন্তর্ভুক্ত <অ্যালগরিদম>
নামস্থান std ব্যবহার করে ;
int প্রধান ( )
{
ভেক্টর < int > তালিকা = { 5 , 2 , 25 , 4 , 9 , 33 , 38 , 26 } ;
cout << 'বাছাই করার আগে সংখ্যা:' ;
প্রতিটির জন্য ( তালিকা শুরু ( ) , তালিকা শেষ ( ) , [ ] ( int এক্স ) {
cout << এক্স << '' ;
} ) ;
stable_sort ( তালিকা শুরু ( ) , তালিকা শেষ ( ) ) ;
cout << ' \n বাছাই করার পরে সংখ্যা: ' ;
প্রতিটির জন্য ( তালিকা শুরু ( ) , তালিকা শেষ ( ) , [ ] ( int এক্স ) {
cout << এক্স << '' ;
} ) ;
ফিরে 0 ;
}
উদাহরণ 2
নীচের উদাহরণে, আমরা একটি পূর্ণসংখ্যা অ্যারে তৈরি করেছি এবং এটিকে কিছু মান দিয়ে শুরু করেছি। তারপর ডিফল্টরূপে, stable_sort() উপাদানগুলিকে আরোহী ক্রমে সাজান:
# অন্তর্ভুক্ত করুন# অন্তর্ভুক্ত <অ্যালগরিদম>
নামস্থান std ব্যবহার করে ;
int প্রধান ( )
{
int অ্যারে [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;
int n = আকার ( অ্যারে ) / আকার ( অ্যারে [ 0 ] ) ;
cout << 'মূল অ্যারে হল: \n ' ;
জন্য ( int i = 0 ; i < n ; ++ i ) {
cout << অ্যারে [ i ] << '' ;
}
stable_sort ( অ্যারে , অ্যারে + n ) ;
cout << ' \n সাজানোর পরে অ্যারে হল: \n ' ;
জন্য ( int i = 0 ; i < n ; ++ i ) {
cout << অ্যারে [ i ] << '' ;
}
ফিরে 0 ;
}
উদাহরণ 3
দ্য stable_sort উপাদান সাজানোর জন্য ক্রম নির্দিষ্ট করতে তৃতীয় প্যারামিটার লাগে। নীচের উদাহরণে, আমরা ব্যবহার করেছি বৃহত্তর() সঙ্গে ফাংশন stable_sort() অ্যারের উপাদানগুলিকে নিচের ক্রমে সাজাতে
# অন্তর্ভুক্ত করুন# অন্তর্ভুক্ত <অ্যালগরিদম>
নামস্থান std ব্যবহার করে ;
int প্রধান ( )
{
int অ্যারে [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;
int n = আকার ( অ্যারে ) / আকার ( অ্যারে [ 0 ] ) ;
cout << 'মূল অ্যারে: \n ' ;
জন্য ( int i = 0 ; i < n ; ++ i ) {
cout << অ্যারে [ i ] << '' ;
}
stable_sort ( অ্যারে , অ্যারে + n , বৃহত্তর < int > ( ) ) ;
cout << ' \n সাজানোর পর অ্যারে: \n ' ;
জন্য ( int i = 0 ; i < n ; ++ i ) {
cout << অ্যারে [ i ] << '' ;
}
ফিরে 0 ;
}
শেষের সারি
দ্য stable_sort() C++-এ ফাংশন হল একটি স্ট্যান্ডার্ড লাইব্রেরি অ্যালগরিদম যা একটি কন্টেইনারের উপাদানগুলিকে অ-হ্রাস ক্রমে সাজাতে ব্যবহৃত হয় এবং একই মান সহ একটি পাত্রে উপাদানগুলির আপেক্ষিক ক্রম বজায় রাখে। এটি অ্যারে, ভেক্টর এবং লিঙ্কযুক্ত তালিকার মতো বিভিন্ন পাত্রে ব্যবহার করা যেতে পারে। উপরন্তু, উপাদান বাছাই করার জন্য ক্রম নির্দিষ্ট করতে এটি একটি তৃতীয় প্যারামিটার লাগে।