स्ट्रिंग को दूसरे में कॉपी किए बिना सॉर्ट क्रम में स्ट्रिंग्स की सरणी प्रिंट करने की समस्या में, हमें स्ट्रिंग्स की सरणी को सॉर्ट करना होगा। यहां प्रोग्रामर सॉर्ट करते समय एक स्ट्रिंग को दूसरी स्ट्रिंग में कॉपी नहीं कर सकता।
आइए एक उदाहरण लेकर अवधारणा को बेहतर ढंग से समझते हैं :
उदाहरण -
Input : {"Delhi", "Hyderabad", "Indore", "Mumbai", "Banglore"} Output : Banglore, Delhi, Hyderabad, Indore, Mumbai व्याख्या - लेक्सिकोग्राफिक रूप से क्रम किया जाता है। तो, B से शुरू होने वाला Banglore पहले आता है और M से शुरू होने वाला Mumbai अंत में आता है।
अब, आइए हमारी समस्या का समाधान निकालने का प्रयास करते हैं।
समस्या को हल करने के लिए, हम एक सरणी बना सकते हैं जो इन स्ट्रिंग्स के सही सूचकांक को संग्रहीत करती है क्योंकि वास्तव में स्ट्रिंग्स की स्थितियों को बदलने के लिए कॉपी करने की आवश्यकता होती है। तो यह समस्या को हल करने का एक संभावित तरीका है।
हम एक इंडेक्स सरणी का उपयोग करेंगे और सॉर्टिंग तकनीक का उपयोग करके इसे सॉर्ट करेंगे और फिर प्रिंट करेंगे। यहां, हम एक सिलेक्शन सॉर्ट तकनीक का उपयोग करेंगे जो सीधी तुलना का उपयोग करती है।
उदाहरण
अब आइए कार्यान्वयन को दर्शाने वाला एक प्रोग्राम बनाते हैं -
#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,