एक स्ट्रिंग को दूसरे में कॉपी किए बिना क्रमबद्ध क्रम में स्ट्रिंग्स की एक सरणी मुद्रित करने की समस्या में, हमें स्ट्रिंग की सरणी को सॉर्ट करने की आवश्यकता होती है। यहां प्रोग्रामर सॉर्ट करते समय एक स्ट्रिंग को दूसरी स्ट्रिंग में कॉपी नहीं कर सकता।
आइए अवधारणा को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं:
उदाहरण -
Input : {“Delhi”, “Hyderabad”, “Indore”, “Mumbai”, “Banglore”} Output : Banglore, Delhi, Hyderabad, Indore, Mumbai
स्पष्टीकरण - लेक्सिकोग्राफिक रूप से ऑर्डरिंग की जाती है। तो, B से शुरू होने वाला बैंगलोर पहले आता है और M से शुरू होने वाला मुंबई सबसे बाद में आता है।
अब, आइए अपनी समस्या का समाधान निकालने का प्रयास करें।
समस्या को हल करने के लिए, हम एक सरणी बना सकते हैं जो इन स्ट्रिंग की सही अनुक्रमणिका को संग्रहीत करती है क्योंकि वास्तव में स्ट्रिंग की स्थिति को बदलने के लिए मुकाबला करने की आवश्यकता होती है। तो यह समस्या को हल करने का एक संभावित तरीका है।
हम एक इंडेक्स ऐरे का उपयोग करेंगे और इसे सॉर्ट करने के लिए सॉर्टिंग तकनीक का उपयोग करेंगे और फिर इसे प्रिंट करेंगे। यहां, हम एक चयन सॉर्ट तकनीक का उपयोग करेंगे जो प्रत्यक्ष तुलना का उपयोग करती है।
उदाहरण
आइए अब कार्य को स्पष्ट करने के लिए एक प्रोग्राम बनाएं -
#include <iostream> using namespace std; void sortedStringArray(string arr[], int n){ int stringIndex[n]; int i, j, min; for (i=0; i<n; i++) stringIndex[i] = i; for (i=0; i<n-1; i++){ min = i; for (j=i+1; j<n; j++){ if (arr[stringIndex[min]].compare(arr[stringIndex[j]]) > 0) min = j; } if (min != i){ int temp = stringIndex[min]; stringIndex[min] = stringIndex[i]; stringIndex[i] = temp; } } for (i=0; i<n; i++) cout << arr[stringIndex[i]] << ", "; } int main(){ string arr[] = {"Delhi", "Hyderabad", "Indore", "Mumbai", "Banglore"}; int n = 5; sortedStringArray(arr, n); return 0; }
आउटपुट
Banglore, Delhi, Hyderabad, Indore, Mumbai,