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

From Vigyanwiki
No edit summary
No edit summary
 
(8 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Short description|Sorting algorithm}}
[[कंप्यूटर विज्ञान]] में, '''स्प्ले-सॉर्ट,''' एक [[ बिखरा हुआ पेड़ |स्प्ले ट्री]] डेटा संरचना पर आधारित अनुकूलन संबंधी तुलना सॉर्टिंग [[कलन विधि|विधिकलन]] है।<ref name="mep">{{citation
[[कंप्यूटर विज्ञान]] में, '''स्प्ले-सॉर्ट,''' एक [[ बिखरा हुआ पेड़ |स्प्ले ट्री]] डेटा संरचना पर आधारित अनुकूलन संबंधी तुलना सॉर्टिंग [[कलन विधि|विधिकलन]] है।<ref name="mep">{{citation
  | last1 = Moffat | first1 = Alistair
  | last1 = Moffat | first1 = Alistair
Line 13: Line 12:


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


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


एक इनपुट अनुक्रम के लिए जिसमें अधिकांश वस्तुओं को क्रमबद्ध क्रम में उनके पूर्ववर्ती के करीब रखा जाता है, या केवल कुछ अन्य वस्तुओं के साथ क्रम से बाहर होते हैं, स्प्लेसॉर्ट ओ (एन लॉग एन) से तेज़ हो सकता है, यह दर्शाता है कि यह एक है अनुकूली प्रकार. इसे परिमाणित करने के लिए, मान लीजिए d<sub>''x''</sub> इनपुट में पदों की संख्या हो जो x को उसके पूर्ववर्ती से अलग करती है, और चलो i<sub>''x''</sub> इनपुट में x के एक तरफ और आउटपुट में x के दूसरी तरफ दिखाई देने वाली वस्तुओं की संख्या (व्युत्क्रम (असतत गणित) की संख्या जिसमें x शामिल है)। फिर यह स्प्ले पेड़ों के लिए गतिशील उंगली प्रमेय से निम्नानुसार है कि स्प्लेसॉर्ट के लिए कुल समय किसके द्वारा सीमित है
जब एक इनपुट क्रम के अनुसार अधिकांश आइटम पूर्ववर्ती के निकट स्थानित होते हैं या केवल कुछ कम आइटम के साथ अव्यवस्थित होते हैं, तब स्प्ले-सॉर्ट, O(n log n) से भी तेज़ हो सकता है, जिससे यह एक अनुकूलनशील सॉर्ट है। इसे परिमाणित करने के लिए, मान लीजिए d<sub>''x''</sub> इनपुट में पदों की संख्या हो जो x को उसके पूर्ववर्ती से अलग करती है, और i<sub>''x''</sub> इनपुट में x के एक तरफ और आउटपुट में x के दूसरी तरफ दिखाई देने वाली वस्तुओं की संख्या है। यदि स्प्ले ट्री के लिए डायनेमिक फिंगर सिद्धांत का पालन किया जाए, तो स्प्ले-सॉर्ट के लिए कुल समय निम्नलिखित रूप से सीमित होता है।
:<math>\sum_x \log d_x</math>
:<math>\sum_x \log d_x</math>
और तक
और
:<math>\sum_x \log i_x</math>.<ref>{{citation
:<math>\sum_x \log i_x</math>.<ref>{{citation
  | last = Cole | first = Richard
  | last = Cole | first = Richard
Line 35: Line 34:
  | volume = 30
  | volume = 30
  | year = 2000| citeseerx = 10.1.1.36.2713
  | year = 2000| citeseerx = 10.1.1.36.2713
  }}.</ref>
  }}.</ref> से
स्प्लेसॉर्ट को इनपुट अनुक्रम के [[एन्ट्रॉपी (सूचना सिद्धांत)]] के अनुकूल भी दिखाया जा सकता है।<ref>{{citation
स्प्लेसॉर्ट को इनपुट अनुक्रम के [[एन्ट्रॉपी (सूचना सिद्धांत)|एन्ट्रॉपी]] के अनुकूल भी दर्शाया जा सकता है।<ref>{{citation
  | last = Gagie | first = Travis
  | last = Gagie | first = Travis
  | arxiv = cs/0506027
  | arxiv = cs/0506027
Line 44: Line 43:


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


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


{{Sorting}}
{{Sorting}}
[[Category: छँटाई एल्गोरिदम]]


 
[[Category:Collapse templates]]
 
[[Category: Machine Translated Page]]
[[Category:Created On 10/07/2023]]
[[Category:Created On 10/07/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia metatemplates]]
[[Category:छँटाई एल्गोरिदम]]

Latest revision as of 13:14, 31 October 2023

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

विधिकलन

स्प्ले-सॉर्ट विधिकलन के निम्नलिखित चरण हैं:

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

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

विश्लेषण

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

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

और

.[2] से

स्प्लेसॉर्ट को इनपुट अनुक्रम के एन्ट्रॉपी के अनुकूल भी दर्शाया जा सकता है।[3]


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

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

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


भिन्नताएँ

साइकोनेन & सोइसालोन-सोइनिनन (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.