प्रोग्रामर जो पीसी और वेब विकास से मोबाइल उपकरणों या एम्बेडेड सिस्टम के लिए कोडिंग में स्विच करते हैं, वे पाते हैं कि अपने स्वयं के डेटा संरचनाओं और एल्गोरिदम को चुनने और कोडिंग करने में अधिक समय व्यतीत होता है। कम मेमोरी और सीमित डेटा स्टोरेज के साथ, पूर्व-निर्मित पुस्तकालयों या ढांचे के लिए कोई जगह नहीं है। तो उन लोगों के लिए जिन्हें अपनी स्वयं की छँटाई दिनचर्या लिखने की आवश्यकता है, यहाँ निम्न बबल प्रकार चुनने पर कुछ विचार दिए गए हैं।
पृष्ठभूमि
बबल सॉर्ट एक सरल एल्गोरिथम है जो मेमोरी में आइटम्स की सूची को सॉर्ट करता है। एक सरणी को देखते हुए, कोड बार-बार आसन्न वस्तुओं की प्रत्येक जोड़ी की तुलना करता है और यदि वे क्रम में नहीं हैं तो उन्हें स्वैप कर देता है। प्रक्रिया तब तक दोहराई जाती है जब तक कि कोई और स्वैप न हो। यदि सॉर्ट प्रगति के दौरान सरणी को देखना संभव था, तो निम्न मान शीर्ष पर "बबल" होंगे जबकि बड़े मान नीचे तक डूब जाएंगे। विजुअल बेसिक 2010 में प्रासंगिक कोड यहां दिया गया है:
दिन का वीडियो
जबकि स्वैप = सही स्वैप = गलत के लिए i = 0 से tbl.लंबाई - 2 यदि tbl (i)> tbl (i + 1) तो tmp = tbl (i) tbl (i) = tbl (i + 1) tbl (i) + 1) = tmp स्वैप = ट्रू एंड इफ नेक्स्ट एंड जबकि
बबल सॉर्ट कब चुनें
इस एल्गोरिथ्म के कई फायदे हैं। यह लिखना सरल है, समझने में आसान है और इसके लिए केवल कुछ पंक्तियों की कोड की आवश्यकता होती है। डेटा को जगह में सॉर्ट किया जाता है, इसलिए थोड़ी मेमोरी ओवरहेड होती है और, एक बार सॉर्ट करने के बाद, डेटा मेमोरी में होता है, प्रोसेसिंग के लिए तैयार होता है। बड़ा नुकसान यह है कि इसे छाँटने में कितना समय लगता है। तालिका तत्वों की संख्या बढ़ने पर औसत समय लगभग घातीय रूप से बढ़ता है। वस्तुओं की संख्या का दस गुना छँटाई करने में लगभग सौ गुना समय लगता है।
अन्य सरणी प्रकार
सॉर्टिंग एल्गोरिदम जटिलता, गति और ओवरहेड में भिन्न होते हैं। बुलबुला छँटाई सबसे कम जटिल है, लेकिन सबसे धीमी में से एक है। अन्य सरणी-आधारित प्रकार जैसे सम्मिलन सॉर्ट और एक्सचेंज सॉर्ट थोड़ा तेज़ हैं लेकिन अधिक कोड लेते हैं (नीचे संदर्भ देखें)। सरणी-आधारित प्रकारों का मुख्य लाभ यह है कि वे कम से कम कोड का उपयोग करते हैं और कम से कम कार्यशील मेमोरी लेते हैं। कुछ सौ से कम आइटम वाले साधारण सरणियों के लिए इन प्रकारों पर विचार करें।
जटिल क्रमबद्ध एल्गोरिदम
बड़े डेटा सेट के लिए अधिक जटिल कोड और अधिक मेमोरी की आवश्यकता होती है। त्वरित सॉर्ट और हीप सॉर्ट दोनों तुलनाओं की संख्या को अनुकूलित करने के लिए डेटा सेट को विभाजित और कॉपी करते हैं। त्वरित क्रम सूची को लगातार विभाजित करता है और फिर उसे क्रमबद्ध क्रम में पुन: संयोजित करता है। हीप सॉर्ट डेटा को ट्री स्ट्रक्चर में कॉपी करता है और फिर डेटा को वापस क्रम में कॉपी करने के लिए ट्री को ट्रैवर्स करता है। दोनों तेज़ और कुशल हैं लेकिन अधिक कोड और अधिक कार्यशील संग्रहण लेते हैं। बड़े डेटा सेट के लिए इन एल्गोरिदम को चुनें।