2012-06-13 25 views
5

मुझे जवाब मिलने से पहले इस प्रश्न को बंद करने का जोखिम है, लेकिन मैं वास्तव में जवाब जानना चाहता हूं। तो यहाँ जाता है।वास्तविक सॉफ़्टवेयर उदाहरण यह तय करने के लिए कि कौन सा सॉर्टिंग एल्गोरिदम सर्वोत्तम काम करता है


मैं वर्तमान में एल्गोरिदम जानने की कोशिश कर रहा हूँ, और मैं इस तरह के रूप में यह समझने लगी हूँ, लेकिन यह से संबंधित नहीं कर सकते हैं।

मैं समझता हूं समय जटिलता और स्पेस कॉम्प्लेक्सिटी। मैं भी

छंटाई एल्गोरिथम छद्म कोड के आधार पर कुछ छँटाई एल्गोरिदम समझते हैं

  1. बुलबुला क्रमबद्ध
  2. निवेशन क्रमबद्ध
  3. चयन क्रमबद्ध
  4. quicksort
  5. Mergesort
  6. Heapsort (कुछ क्या)

मुझे बेस्ट केस और सबसे खराब केस परिदृश्य (औसत मामला इतना नहीं) के बारे में भी पता है।


कुछ ऑनलाइन प्रासंगिक संदर्भ

  • Nice place जो रेखांकन सब से ऊपर को दर्शाता है।
  • This ने मुझे अच्छी समझ भी दी।

लेकिन मेरे सवाल है - कुछ भी मुझे असली दुनिया उदाहरण जहां इन छँटाई एल्गोरिदम लागू किया जाता है दे सकते हैं।

+2

http://stackoverflow.com/questions/1933759/when-is-each-sorting-algorithm-used आपके उत्तर के लिए –

+0

धन्यवाद, लेकिन आप यह भी प्रदान करें सकते हैं, जैसे, वीडियो स्ट्रीमिंग वास्तविक उदाहरण डेटा सॉर्ट, 5 मिलियन से अधिक लोगों के फोन डिटक्टरी रिकॉर्ड में के साथ शुरू होने वाले पहले नाम वाले लोगों के खोज पते। – Amey

उत्तर

7

तत्वों की संख्या बढ़ने के साथ, आप अधिक परिष्कृत सॉर्टिंग एल्गोरिदम का उपयोग करेंगे। बाद में सॉर्टिंग तकनीकों में उच्च प्रारंभिक ओवरहेड होता है, इसलिए आपको उस लागत को औचित्य देने के लिए कई तत्वों की आवश्यकता होती है। यदि आपके पास केवल 10 तत्व हैं, तो एक बबल या सम्मिलन प्रकार मर्ज सॉर्ट या हेपसोर्ट से बहुत तेज़ होगा।

स्पेस जटिलता टीवी एम्बेडेड, या एक सेल फोन जैसे छोटे एम्बेडेड डिवाइसों पर विचार करना महत्वपूर्ण है। आपके पास उन उपकरणों पर एक हेपॉर्ट की तरह कुछ करने के लिए पर्याप्त जगह नहीं है।

डेटबेस एक बाहरी विलय सॉर्ट का उपयोग डेटा के सेट को सॉर्ट करने के लिए करते हैं जो पूरी तरह से स्मृति में लोड होने के लिए बहुत बड़े होते हैं। इस प्रकार ड्राइविंग कारक डिस्क I/Os की संख्या में कमी है।

Good bubble sort discussion, वहाँ कई अन्य कारकों पर विचार करने के लिए है कि एक समय और स्थान जटिलता के लिए योगदान कर रहे हैं।

Sorting-Algorithms.com

+0

आपके उत्तर के लिए धन्यवाद, इसलिए किसी भी समय किसी को भी वास्तविक दुनिया परिदृश्य में बबल सॉर्ट या सम्मिलन प्रकार का उपयोग नहीं करना पड़ेगा? – Amey

+0

यदि आप जानते हैं कि आपके पास सॉर्ट करने के लिए बहुत सारी चीज़ें नहीं हैं, तो बबल सॉर्ट या सम्मिलन प्रकार का उपयोग करना बेहतर है। मैंने एक टीवी रिमोट प्रोग्राम किया जिसने एक एमआईपीएस प्रोसेसर का इस्तेमाल किया और मैंने सबसे लंबे समय तक देखने वाले चैनलों को चैनलों को सॉर्ट करने के लिए बबल प्रकार का उपयोग किया। केवल 100 चैनल थे। साथ ही, यदि आप जानते हैं कि तत्व निकट-क्रमबद्ध क्रम में हैं, तो एक बबल प्रकार अच्छा है क्योंकि यह एन/2 पास के औसत मामले की तुलना में कहीं बेहतर गति में समाप्त होगा। – JustinDanielson

+0

धन्यवाद जस्टिन, क्या आप इसे अपने परिणाम में संपादित करना चाहते हैं (बबल सॉर्ट भाग)। मैं इसे उत्तर के रूप में चिह्नित कर रहा हूं। सॉर्टिंग-algorithms.com यूआरएल के लिए – Amey

0

ही एक उदाहरण है सी ++ एसटीएल तरह

wikipedia page के रूप में कहते हैं:

जीएनयू स्टैंडर्ड सी ++ पुस्तकालय, उदाहरण के लिए, एल्गोरिथ्म छँटाई एक संकर का उपयोग करता है: introsort अधिकतम गहराई के लिए, पहले किया जाता है 2 × log2 n द्वारा दिया गया, जहां n तत्वों की संख्या है, जिसके बाद परिणाम परिणाम पर क्रमबद्ध करें। 1 जो भी कार्यान्वयन, जटिलता औसत पर ओ (एन लॉग एन) तुलना होना चाहिए। [2]