यहां हम देखेंगे कि दी गई संख्याओं को पुनर्व्यवस्थित करके सबसे बड़ी संख्या कैसे उत्पन्न करें। मान लीजिए {45, 74, 23} दिया गया है, प्रोग्राम सबसे बड़ी संख्या ढूंढेगा, जो 744523 है। तो प्रत्येक अंक को व्यवस्थित नहीं किया जाएगा। लेकिन पूरी संख्या को सबसे बड़ी संख्या बनाने के लिए रखा जाएगा।
इस समस्या को हल करने के लिए, हम स्ट्रिंग सॉर्टिंग का उपयोग करेंगे। लेकिन तुलना तर्क अलग है। तुलना फ़ंक्शन दो संख्याओं a और b लेगा, फिर उन्हें संयोजित करके ab और ba बनाएगा। उनमें से जो बड़ा है, उसे माना जाता है।
एल्गोरिदम
compareStrings(a, b)
begin ab := concatenate b with a ba := concatenate a with b compare ba with ab, then return 1 if ba is bigger, otherwise return 0 end getLargest(arr): begin sort the arr with the comparison logic using compareString() for each string s in arr, do print s done end
उदाहरण
#include#include #include #include using namespace std; int stringCompare(string a, string b) { string ab = a.append(b); string ba = b.append(a); return ab.compare(ba) > 0 ? 1: 0; } void getLargest(vector arr) { sort(arr.begin(), arr.end(), stringCompare); //sort the array for (int i =0; i < arr.size() ; i++ ) cout << arr[i]; } int main() { vector arr; arr.push_back("45"); arr.push_back("74"); arr.push_back("23"); getLargest(arr); }
आउटपुट
744523