स्प्लिसॉर्ट: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Sorting algorithm}} कंप्यूटर विज्ञान में, स्प्लेसॉर्ट, बिखरा हुआ पेड...")
 
No edit summary
Line 1: Line 1:
{{Short description|Sorting algorithm}}
{{Short description|Sorting algorithm}}
[[कंप्यूटर विज्ञान]] में, स्प्लेसॉर्ट, [[ बिखरा हुआ पेड़ ]] [[डेटा संरचना]] पर आधारित एक अनुकूली सॉर्ट तुलना सॉर्टिंग [[कलन विधि]] है।<ref name="mep">{{citation
[[कंप्यूटर विज्ञान]] में, '''स्प्ले-सॉर्ट,''' एक [[ बिखरा हुआ पेड़ |स्प्ले ट्री]] डेटा संरचना पर आधारित अनुकूलन संबंधी तुलना सॉर्टिंग [[कलन विधि|विधिकलन]] है।<ref name="mep">{{citation
  | last1 = Moffat | first1 = Alistair
  | last1 = Moffat | first1 = Alistair
  | last2 = Eddy | first2 = Gary
  | last2 = Eddy | first2 = Gary
Line 12: Line 12:
  | volume = 26}}</ref>
  | volume = 26}}</ref>


 
== विधिकलन ==
==एल्गोरिदम==
विधिकलन के चरण हैं:
एल्गोरिथम के चरण हैं:
# एक रिक्त स्प्ले ट्री का चयन करें
# एक खाली स्प्ले ट्री को आरंभ करें
# इनपुट [[क्रम में]] प्रत्येक डेटा आइटम के लिए, इसे स्प्ले ट्री में प्रविष्ट करें। इन्सर्शन
# इनपुट [[क्रम में]] प्रत्येक डेटा आइटम के लिए, इसे स्प्ले ट्री में डालें
# डेटा के लिए सम्मिलिति करने के बाद, स्प्ले ट्री को क्रमबद्ध करें ताकि डेटा की क्रमबद्धता का पता चले।
# डेटा का क्रमबद्ध क्रम खोजने के लिए स्प्ले ट्री को पार करें
इस प्रकार, विधिकलन को [[ सम्मिलन सॉर्ट |इन्सर्शन सॉर्ट]] या [[ पेड़ की छँटाई |ट्री सॉर्ट]] के रूप में देखा जा सकता है, जहाँ प्रत्येक इन्सर्शन को गति देने के लिए एक स्प्ले ट्री का उपयोग किया जाता है।
इस प्रकार, एल्गोरिदम को [[ सम्मिलन सॉर्ट ]] या [[ पेड़ की छँटाई ]] के रूप में देखा जा सकता है, प्रत्येक इंसर्शन को गति देने के लिए एक स्प्ले ट्री का उपयोग किया जाता है।


==विश्लेषण==
==विश्लेषण==
स्प्ले पेड़ों के अमूर्त विश्लेषण के आधार पर, एन डेटा आइटम के साथ इनपुट पर स्प्लेसॉर्ट का सबसे खराब समय चलने वाला समय ओ (एन लॉग एन) है, जो [[जल्दी से सुलझाएं]], [[ ढेर बनाएं और छांटें ]] जैसे कुशल गैर-अनुकूली एल्गोरिदम के लिए समय सीमा से मेल खाता है। और [[ मर्ज़ सॉर्ट ]] करें।
स्प्ले पेड़ों के अमूर्त विश्लेषण के आधार पर, एन डेटा आइटम के साथ इनपुट पर स्प्लेसॉर्ट का सबसे खराब समय चलने वाला समय ओ (एन लॉग एन) है, जो [[जल्दी से सुलझाएं]], [[ ढेर बनाएं और छांटें ]] जैसे कुशल गैर-अनुकूली विधिकलन के लिए समय सीमा से मेल खाता है। और [[ मर्ज़ सॉर्ट ]] करें।


एक इनपुट अनुक्रम के लिए जिसमें अधिकांश वस्तुओं को क्रमबद्ध क्रम में उनके पूर्ववर्ती के करीब रखा जाता है, या केवल कुछ अन्य वस्तुओं के साथ क्रम से बाहर होते हैं, स्प्लेसॉर्ट ओ (एन लॉग एन) से तेज़ हो सकता है, यह दर्शाता है कि यह एक है अनुकूली प्रकार. इसे परिमाणित करने के लिए, मान लीजिए d<sub>''x''</sub> इनपुट में पदों की संख्या हो जो x को उसके पूर्ववर्ती से अलग करती है, और चलो i<sub>''x''</sub> इनपुट में x के एक तरफ और आउटपुट में x के दूसरी तरफ दिखाई देने वाली वस्तुओं की संख्या (व्युत्क्रम (असतत गणित) की संख्या जिसमें x शामिल है)। फिर यह स्प्ले पेड़ों के लिए गतिशील उंगली प्रमेय से निम्नानुसार है कि स्प्लेसॉर्ट के लिए कुल समय किसके द्वारा सीमित है
एक इनपुट अनुक्रम के लिए जिसमें अधिकांश वस्तुओं को क्रमबद्ध क्रम में उनके पूर्ववर्ती के करीब रखा जाता है, या केवल कुछ अन्य वस्तुओं के साथ क्रम से बाहर होते हैं, स्प्लेसॉर्ट ओ (एन लॉग एन) से तेज़ हो सकता है, यह दर्शाता है कि यह एक है अनुकूली प्रकार. इसे परिमाणित करने के लिए, मान लीजिए d<sub>''x''</sub> इनपुट में पदों की संख्या हो जो x को उसके पूर्ववर्ती से अलग करती है, और चलो i<sub>''x''</sub> इनपुट में x के एक तरफ और आउटपुट में x के दूसरी तरफ दिखाई देने वाली वस्तुओं की संख्या (व्युत्क्रम (असतत गणित) की संख्या जिसमें x शामिल है)। फिर यह स्प्ले पेड़ों के लिए गतिशील उंगली प्रमेय से निम्नानुसार है कि स्प्लेसॉर्ट के लिए कुल समय किसके द्वारा सीमित है
Line 45: Line 44:


==प्रयोगात्मक परिणाम==
==प्रयोगात्मक परिणाम==
द्वारा प्रयोगों में {{harvtxt|Moffat|Eddy|Petersson|1996}}, स्प्लेसॉर्ट 1.5 से 2 के कारक द्वारा यादृच्छिक संख्याओं की तालिकाओं पर क्विकॉर्ट की तुलना में धीमा था, और छोटे कारकों द्वारा मर्जसॉर्ट की तुलना में धीमा था। बड़े रिकॉर्ड वाले डेटा के लिए, फिर से एक यादृच्छिक क्रम में, क्विकॉर्ट द्वारा किए गए डेटा मूवमेंट की अतिरिक्त मात्रा ने पॉइंटर-आधारित एल्गोरिदम की तुलना में इसे काफी धीमा कर दिया, और स्प्लेसॉर्ट और मर्जसॉर्ट का समय एक-दूसरे के बहुत करीब था। हालाँकि, लगभग पूर्व-निर्धारित इनपुट अनुक्रमों के लिए (डेटा में सन्निहित मोनोटोन अनुवर्ती की संख्या, व्युत्क्रमों की संख्या, क्रमबद्ध अनुवर्ती बनाने के लिए हटाए जाने वाले आइटमों की संख्या, या गैर-सन्निहित मोनोटोन अनुवर्ती की संख्या के संदर्भ में मापा जाता है) जिसमें इनपुट को विभाजित किया जा सकता है) स्प्लेसॉर्ट अन्य एल्गोरिदम की तुलना में काफी अधिक कुशल हो गया।<ref name="mep"/>
द्वारा प्रयोगों में {{harvtxt|Moffat|Eddy|Petersson|1996}}, स्प्लेसॉर्ट 1.5 से 2 के कारक द्वारा यादृच्छिक संख्याओं की तालिकाओं पर क्विकॉर्ट की तुलना में धीमा था, और छोटे कारकों द्वारा मर्जसॉर्ट की तुलना में धीमा था। बड़े रिकॉर्ड वाले डेटा के लिए, फिर से एक यादृच्छिक क्रम में, क्विकॉर्ट द्वारा किए गए डेटा मूवमेंट की अतिरिक्त मात्रा ने पॉइंटर-आधारित विधिकलन की तुलना में इसे काफी धीमा कर दिया, और स्प्लेसॉर्ट और मर्जसॉर्ट का समय एक-दूसरे के बहुत करीब था। हालाँकि, लगभग पूर्व-निर्धारित इनपुट अनुक्रमों के लिए (डेटा में सन्निहित मोनोटोन अनुवर्ती की संख्या, व्युत्क्रमों की संख्या, क्रमबद्ध अनुवर्ती बनाने के लिए हटाए जाने वाले आइटमों की संख्या, या गैर-सन्निहित मोनोटोन अनुवर्ती की संख्या के संदर्भ में मापा जाता है) जिसमें इनपुट को विभाजित किया जा सकता है) स्प्लेसॉर्ट अन्य विधिकलन की तुलना में काफी अधिक कुशल हो गया।<ref name="mep"/>


{{harvtxt|Elmasry|Hammad|2005}}स्प्लेसॉर्ट की तुलना कई अन्य एल्गोरिदम से की गई है जो इनपुट में व्युत्क्रमों की कुल संख्या के साथ-साथ क्विकसॉर्ट के लिए अनुकूली हैं। उन्होंने पाया कि, उन इनपुटों पर जिनमें क्विकॉर्ट की तुलना में अनुकूली एल्गोरिदम को तेज़ बनाने के लिए पर्याप्त व्युत्क्रमण कम थे, स्प्लेसॉर्ट सबसे तेज़ एल्गोरिदम था।<ref>{{citation
{{harvtxt|Elmasry|Hammad|2005}}स्प्लेसॉर्ट की तुलना कई अन्य विधिकलन से की गई है जो इनपुट में व्युत्क्रमों की कुल संख्या के साथ-साथ क्विकसॉर्ट के लिए अनुकूली हैं। उन्होंने पाया कि, उन इनपुटों पर जिनमें क्विकॉर्ट की तुलना में अनुकूली विधिकलन को तेज़ बनाने के लिए पर्याप्त व्युत्क्रमण कम थे, स्प्लेसॉर्ट सबसे तेज़ विधिकलन था।<ref>{{citation
  | last1 = Elmasry | first1 = Amr
  | last1 = Elmasry | first1 = Amr
  | last2 = Hammad | first2 = Abdelrahman
  | last2 = Hammad | first2 = Abdelrahman
Line 61: Line 60:


==भिन्नताएँ==
==भिन्नताएँ==
{{harvtxt|Saikkonen|Soisalon-Soininen|2012}} इनपुट में सन्निहित मोनोटोन अनुवर्ती की संख्या के लिए अधिक दृढ़ता से अनुकूली होने के लिए स्प्लेसॉर्ट को संशोधित करें, और प्रयोगों पर रिपोर्ट करें जो दर्शाता है कि परिणामी एल्गोरिदम उन इनपुटों पर तेज़ है जो इस माप के अनुसार लगभग पूर्व-सॉर्ट किए गए हैं।<ref>{{citation
{{harvtxt|Saikkonen|Soisalon-Soininen|2012}} इनपुट में सन्निहित मोनोटोन अनुवर्ती की संख्या के लिए अधिक दृढ़ता से अनुकूली होने के लिए स्प्लेसॉर्ट को संशोधित करें, और प्रयोगों पर रिपोर्ट करें जो दर्शाता है कि परिणामी विधिकलन उन इनपुटों पर तेज़ है जो इस माप के अनुसार लगभग पूर्व-सॉर्ट किए गए हैं।<ref>{{citation
  | last1 = Saikkonen | first1 = Riku
  | last1 = Saikkonen | first1 = Riku
  | last2 = Soisalon-Soininen | first2 = Eljas
  | last2 = Soisalon-Soininen | first2 = Eljas

Revision as of 23:49, 19 July 2023

कंप्यूटर विज्ञान में, स्प्ले-सॉर्ट, एक स्प्ले ट्री डेटा संरचना पर आधारित अनुकूलन संबंधी तुलना सॉर्टिंग विधिकलन है।[1]

विधिकलन

विधिकलन के चरण हैं:

  1. एक रिक्त स्प्ले ट्री का चयन करें
  2. इनपुट क्रम में प्रत्येक डेटा आइटम के लिए, इसे स्प्ले ट्री में प्रविष्ट करें। इन्सर्शन
  3. डेटा के लिए सम्मिलिति करने के बाद, स्प्ले ट्री को क्रमबद्ध करें ताकि डेटा की क्रमबद्धता का पता चले।

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

विश्लेषण

स्प्ले पेड़ों के अमूर्त विश्लेषण के आधार पर, एन डेटा आइटम के साथ इनपुट पर स्प्लेसॉर्ट का सबसे खराब समय चलने वाला समय ओ (एन लॉग एन) है, जो जल्दी से सुलझाएं, ढेर बनाएं और छांटें जैसे कुशल गैर-अनुकूली विधिकलन के लिए समय सीमा से मेल खाता है। और मर्ज़ सॉर्ट करें।

एक इनपुट अनुक्रम के लिए जिसमें अधिकांश वस्तुओं को क्रमबद्ध क्रम में उनके पूर्ववर्ती के करीब रखा जाता है, या केवल कुछ अन्य वस्तुओं के साथ क्रम से बाहर होते हैं, स्प्लेसॉर्ट ओ (एन लॉग एन) से तेज़ हो सकता है, यह दर्शाता है कि यह एक है अनुकूली प्रकार. इसे परिमाणित करने के लिए, मान लीजिए dx इनपुट में पदों की संख्या हो जो x को उसके पूर्ववर्ती से अलग करती है, और चलो ix इनपुट में x के एक तरफ और आउटपुट में x के दूसरी तरफ दिखाई देने वाली वस्तुओं की संख्या (व्युत्क्रम (असतत गणित) की संख्या जिसमें x शामिल है)। फिर यह स्प्ले पेड़ों के लिए गतिशील उंगली प्रमेय से निम्नानुसार है कि स्प्लेसॉर्ट के लिए कुल समय किसके द्वारा सीमित है

और तक

.[2]

स्प्लेसॉर्ट को इनपुट अनुक्रम के एन्ट्रॉपी (सूचना सिद्धांत) के अनुकूल भी दिखाया जा सकता है।[3]


प्रयोगात्मक परिणाम

द्वारा प्रयोगों में Moffat, Eddy & Petersson (1996), स्प्लेसॉर्ट 1.5 से 2 के कारक द्वारा यादृच्छिक संख्याओं की तालिकाओं पर क्विकॉर्ट की तुलना में धीमा था, और छोटे कारकों द्वारा मर्जसॉर्ट की तुलना में धीमा था। बड़े रिकॉर्ड वाले डेटा के लिए, फिर से एक यादृच्छिक क्रम में, क्विकॉर्ट द्वारा किए गए डेटा मूवमेंट की अतिरिक्त मात्रा ने पॉइंटर-आधारित विधिकलन की तुलना में इसे काफी धीमा कर दिया, और स्प्लेसॉर्ट और मर्जसॉर्ट का समय एक-दूसरे के बहुत करीब था। हालाँकि, लगभग पूर्व-निर्धारित इनपुट अनुक्रमों के लिए (डेटा में सन्निहित मोनोटोन अनुवर्ती की संख्या, व्युत्क्रमों की संख्या, क्रमबद्ध अनुवर्ती बनाने के लिए हटाए जाने वाले आइटमों की संख्या, या गैर-सन्निहित मोनोटोन अनुवर्ती की संख्या के संदर्भ में मापा जाता है) जिसमें इनपुट को विभाजित किया जा सकता है) स्प्लेसॉर्ट अन्य विधिकलन की तुलना में काफी अधिक कुशल हो गया।[1]

Elmasry & Hammad (2005)स्प्लेसॉर्ट की तुलना कई अन्य विधिकलन से की गई है जो इनपुट में व्युत्क्रमों की कुल संख्या के साथ-साथ क्विकसॉर्ट के लिए अनुकूली हैं। उन्होंने पाया कि, उन इनपुटों पर जिनमें क्विकॉर्ट की तुलना में अनुकूली विधिकलन को तेज़ बनाने के लिए पर्याप्त व्युत्क्रमण कम थे, स्प्लेसॉर्ट सबसे तेज़ विधिकलन था।[4]


भिन्नताएँ

Saikkonen & Soisalon-Soininen (2012) इनपुट में सन्निहित मोनोटोन अनुवर्ती की संख्या के लिए अधिक दृढ़ता से अनुकूली होने के लिए स्प्लेसॉर्ट को संशोधित करें, और प्रयोगों पर रिपोर्ट करें जो दर्शाता है कि परिणामी विधिकलन उन इनपुटों पर तेज़ है जो इस माप के अनुसार लगभग पूर्व-सॉर्ट किए गए हैं।[5]


संदर्भ

  1. 1.0 1.1 Moffat, Alistair; Eddy, Gary; Petersson, Ola (July 1996), "Splaysort: Fast, Versatile, Practical", Software: Practice and Experience, 26 (7): 781–797, doi:10.1002/(SICI)1097-024X(199607)26:7<781::AID-SPE35>3.3.CO;2-2
  2. Cole, Richard (2000), "On the dynamic finger conjecture for splay trees. II. The proof", SIAM Journal on Computing, 30 (1): 44–85, CiteSeerX 10.1.1.36.2713, doi:10.1137/S009753979732699X, MR 1762706.
  3. Gagie, Travis (2005), Sorting a low-entropy sequence, arXiv:cs/0506027, Bibcode:2005cs........6027G.
  4. Elmasry, Amr; Hammad, Abdelrahman (2005), "An empirical study for inversions-sensitive sorting algorithms", Experimental and Efficient Algorithms: 4th International Workshop, WEA 2005, Santorini Island, Greece, May 10-13, 2005, Proceedings, Lecture Notes in Computer Science, vol. 3503, Springer, pp. 597–601, doi:10.1007/11427186_52.
  5. Saikkonen, Riku; Soisalon-Soininen, Eljas (2012), "A general method for improving insertion-based adaptive sorting", Algorithms and Computation: 23rd International Symposium, ISAAC 2012, Taipei, Taiwan, December 19-21, 2012, Proceedings, Lecture Notes in Computer Science, vol. 7676, Springer, pp. 217–226, doi:10.1007/978-3-642-35261-4_25.