यहां हम देखेंगे कि दी गई संख्याओं को पुनर्व्यवस्थित करके सबसे बड़ी संख्या कैसे उत्पन्न करें। मान लीजिए कि {45, 74, 23} दिए गए हैं, प्रोग्राम सबसे बड़ी संख्या ज्ञात करेगा, जो कि 744523 है। इसलिए प्रत्येक अंक को व्यवस्थित नहीं किया जाएगा। लेकिन पूरी संख्या को सबसे बड़ी संख्या बनाने के लिए रखा जाएगा।
इस समस्या को हल करने के लिए, हम स्ट्रिंग सॉर्टिंग का उपयोग करेंगे। लेकिन तुलना तर्क अलग है। तुलना फ़ंक्शन दो नंबर ए और बी लेगा, फिर उन्हें एबी और बीए बनाने के लिए संयोजित करें। उनमें से कौन बड़ा है, यह माना जाता है।
एल्गोरिदम
तुलना स्ट्रिंग्स(ए, बी)
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<iostream> #include <string> #include &t;vector> #include <algorithm> 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<string> arr) { sort(arr.begin(), arr.end(), stringCompare); //sort the array for (int i =0; i < arr.size() ; i++ ) cout << arr[i]; } int main() { vector<string> arr; arr.push_back("45"); arr.push_back("74"); arr.push_back("23"); getLargest(arr); }
आउटपुट
744523