मैं एक से अधिक डेटा प्रविष्टियों को निम्न जानकारी शामिल है: ID_NUMBER name1 तारीख NAME2सी ++ कई तत्वों के साथ डबल छंटाई डेटा
यह इस तरह एक struct में डाल करना संभव है:
struct entry {
int id_number;
string name1;
int date;
string name2;
}
मेरे डेटा में, मेरे पास ऐसी कई प्रविष्टियां हैं और मैं सॉर्ट करना चाहता हूं। सबसे पहले, मैं नाम 1 के आधार पर वर्णानुक्रम में क्रमबद्ध करना चाहता हूं, फिर तिथि के आधार पर क्रमबद्ध करें। हालांकि, तिथि के आधार पर क्रमबद्ध वर्णमाला का सबसेट है, उदा। अगर मेरे पास एक ही नाम 1 के साथ दो प्रविष्टियां हैं, तो मैं तिथि के अनुसार उन प्रविष्टियों को ऑर्डर करना चाहता हूं। इसके अलावा, जब मैं सॉर्ट करता हूं, मैं चाहता हूं कि प्रविष्टि के तत्व एक साथ रहें, इसलिए सभी चार मान एक साथ चलते हैं।
मेरे सवालों का इस प्रकार हैं:
1) डेटा संरचना किस प्रकार मैं इस डेटा रखने के लिए इस्तेमाल करना चाहिए तो मैं उनमें से किसी एक के द्वारा जब मैं प्रकार किसी भी एक साथ चार तत्वों के सेट रख सकते हैं?
2) इस सॉर्टिंग को करने का सबसे तेज़ तरीका क्या है (कोड लिखने के लिए समय की मात्रा के मामले में)। आदर्श रूप से, मैं एल्गोरिदम.h में इस प्रकार की तरह कुछ उपयोग करना चाहता हूं क्योंकि यह पहले से ही बनाया गया है।
3) क्या एसटीएल में डेटा संरचना में कुछ बनाया गया है जो मैंने कुशलता से वर्णित डबल सॉर्टिंग को संभाल सकता है?
उसे एक स्थिर प्रकार की आवश्यकता है या यह काम नहीं करेगा। मैं अपना खुद का उत्तर देने से पहले ही कहूंगा क्योंकि यह आपके जैसा बहुत कुछ होगा, इस बारे में टिप्पणी के अलावा कि std :: stable_sort वास्तव में कितना धीमा है और दूसरा मर्ज सॉर्ट कार्यान्वयन बहुत बेहतर होगा क्योंकि सबसे अच्छा और सबसे खराब मामला n लॉग n है जबकि std :: stable_sort जैसा है ... n log n^2 या कुछ ऐसा गूंगा है। इसलिए, मैं उस पते के उत्तर को अद्यतन करता हूं, जो ज्यादातर। यदि आप करते हैं तो मैं आपको वोट दूंगा। या मैं सिद्धांत को अपने उत्तर में समझाऊंगा ... –
@OrgnlDave: ऐसा नहीं। यदि आप दो फ़ील्ड पर * अलग से * सॉर्ट करते हैं तो आपको एक स्थिर प्रकार * केवल * की आवश्यकता होती है। यानी, आप पहले तिथि के अनुसार क्रमबद्ध करते हैं, फिर नाम से अलग से क्रमबद्ध करें, और तारीखों को क्रम में रहने का इरादा रखें। यह एक बार में दोनों तुलना कर रहा है, इसलिए एक ही प्रकार (जो अस्थिर हो सकता है) दोनों नाम और तारीख द्वारा व्यवस्थित किया जाता है। –
क्षमा करें, लेकिन तुलनित्र एक स्थिर प्रकार प्रदान नहीं करेगा –