समय की जटिलता: Difference between revisions
From Vigyanwiki
No edit summary |
No edit summary |
||
| (5 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
{{Short description|Estimate of time taken for running an algorithm}} | {{Short description|Estimate of time taken for running an algorithm}} | ||
{{Redirect| | {{Redirect|रनिंग समय|द फ़िल्म|रनिंग टाइम (फ़िल्म)}} | ||
[[File:comparison computational complexity.svg|thumb| | [[File:comparison computational complexity.svg|thumb|सामान्यतः एल्गोरिदम के विश्लेषण में उपयोग किए जाने वाले फलन के ग्राफ़, प्रत्येक फलन के लिए इनपुट आकार n के परिणाम के रूप में संचालन N की संख्या दिखाते हैं]][[कंप्यूटर विज्ञान]] में, '''समय जटिलता''' कम्प्यूटेशनल जटिलता है जो [[कलन विधि]] को चलाने में लगने वाले कंप्यूटर समय की मात्रा का वर्णन करती है। समय की जटिलता का अनुमान सामान्यतः एल्गोरिदम द्वारा किए गए प्राथमिक संचालन की संख्या की गणना करके लगाया जाता है, यह मानते हुए कि प्रत्येक प्रारंभिक संचालन को निष्पादित करने में निश्चित समय लगता है। इस प्रकार, एल्गोरिदम द्वारा किए गए समय की मात्रा और किए गए प्राथमिक संचालन की संख्या को [[स्थिर कारक]] से संबंधित माना जाता है। | ||
चूंकि एल्गोरिदम का चलने का समय ही आकार के विभिन्न इनपुट के बीच भिन्न हो सकता है, इसलिए | चूंकि एल्गोरिदम का चलने का समय ही आकार के विभिन्न इनपुट के बीच भिन्न हो सकता है, इसलिए सामान्यतः [[सबसे खराब स्थिति जटिलता|सबसे व्यर्थ स्थिति जटिलता]] पर विचार किया जाता है, जो किसी दिए गए आकार के इनपुट के लिए आवश्यक अधिकतम समय है। कम सामान्य, और सामान्यतः स्पष्ट रूप से निर्दिष्ट, औसत-केस जटिलता है, जो किसी दिए गए आकार के इनपुट पर लिए गए समय का औसत है (यह समझ में आता है क्योंकि किसी दिए गए आकार के संभावित इनपुट की केवल सीमित संख्या होती है)। दोनों ही स्थितियों में, समय जटिलता सामान्यतः इनपुट के आकार के [[फ़ंक्शन (गणित)|फलन (गणित)]] के रूप में व्यक्त की जाती है।<ref name="Sipser" />{{RP|226}} चूंकि इस फलन की स्पष्ट गणना करना सामान्यतः कठिन होता है, और छोटे इनपुट के लिए चलने का समय सामान्यतः परिणामी नहीं होता है, सामान्यतः इनपुट आकार बढ़ने पर जटिलता के व्यवहार पर ध्यान केंद्रित किया जाता है अर्थात, जटिलता का [[स्पर्शोन्मुख विश्लेषण]] इसलिए, समय जटिलता सामान्यतः [[बड़ा ओ अंकन]] का उपयोग करके व्यक्त की जाती है {{nowrap|<math>O(n)</math>,}} {{nowrap|<math>O(n\log n)</math>,}} {{nowrap|<math>O(n^\alpha)</math>,}} {{nowrap|<math>O(2^n)</math>,}} आदि, जहाँ {{mvar|n}} इनपुट का प्रतिनिधित्व करने के लिए आवश्यक [[ अंश |अंश]] की इकाइयों में आकार है। | ||
एल्गोरिथम जटिलताओं को बड़े ओ नोटेशन में दिखाई देने वाले | एल्गोरिथम जटिलताओं को बड़े ओ नोटेशन में दिखाई देने वाले फलन के प्रकार के अनुसार वर्गीकृत किया गया है। उदाहरण के लिए, समय जटिलता वाला एल्गोरिदम <math>O(n)</math> रैखिक समय एल्गोरिथ्म और समय जटिलता वाला एल्गोरिदम <math>O(n^\alpha)</math> है कुछ स्थिरांक के लिए <math>\alpha > 1</math> बहुपद समय एल्गोरिथ्म है। | ||
== सामान्य समय जटिलताओं की तालिका == | == सामान्य समय जटिलताओं की तालिका == | ||
{{Further| | {{Further|गणितीय संक्रियाओं की कम्प्यूटेशनल जटिलता}} | ||
निम्नलिखित तालिका | |||
निम्नलिखित तालिका सामान्यतः सामना की जाने वाली समय जटिलताओं के कुछ वर्गों का सारांश प्रस्तुत करती है। तालिका में पॉली (x) = xO(1) अर्थात x में बहुपद है। | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
! | ! नाम !! [[Complexity class|जटिलता वर्ग]] !! संचालन समय (टी(एन)) !! प्रारंभ समय के उदाहरण !! उदाहरण एल्गोरिदम | ||
|- | |- | ||
| | | निरंतर समय || || <math>O(1)</math> || 10 || संख्याओं की क्रमबद्ध सारणी में माध्य मान ज्ञात करना। | ||
की गणना {{math|(−1){{sup|''n''}}}} | |||
|- | |- | ||
| | | एकरमैन समय का उलटा || || <math>O\bigl(\alpha(n)\bigr)</math> || || एक असंयुक्त समुच्चय का उपयोग करके प्रति ऑपरेशन परिशोधित समय | ||
|- | |- | ||
| | | पुनरावृत्त लघुगणकीय समय || || <math>O(\log^*n)</math> || || [[Cole-Vishkin algorithm|साइकिलों का रंग-रोगन वितरित किया]] | ||
|- | |- | ||
| | | लॉग-लघुगणक || || <math>O(\log\log n)</math> || || एक बंधी हुई प्राथमिकता कतार का उपयोग करके प्रति ऑपरेशन परिशोधित समय<ref>{{Cite journal|first1=Kurt |last1=Mehlhorn |author1-link=Kurt Mehlhorn|first2=Stefan |last2=Naher|year=1990|title=Bounded ordered dictionaries in {{math|''O''(log log ''N'')}} time and {{math|''O''(''n'')}} space|journal=[[Information Processing Letters]]|doi=10.1016/0020-0190(90)90022-P|volume=35|issue=4|pages=183–189}}</ref> | ||
|- | |- | ||
| | | लघुगणकीय समय || [[DLOGTIME]] || <math>O(\log n)</math> || <math>\log n</math>, <math>\log (n^2)</math> || [[Binary search|बाइनरी खोज]] | ||
|- | |- | ||
| | | बहुगणितीय समय || || <math>\text{poly}(\log n)</math> || <math>(\log n)^2</math> || | ||
|- | |- | ||
| | |भिन्नात्मक शक्ति || || <math>O(n^c)</math> where <math>0<c<1</math> || <math>n^{\frac{1}{2}}</math>, <math>n^{\frac{2}{3}}</math> || केडी-ट्री में खोज रहे हैं | ||
|- | |- | ||
| | | रैखिक समय || || <math>O(n)</math> || {{mvar|n}}, <math>2n+5</math> || किसी अवर्गीकृत सरणी में सबसे छोटी या सबसे बड़ी वस्तु खोज। | ||
कडेन का एल्गोरिदम। रेखीय खोज | |||
|- | |- | ||
| " | | "एन लॉग-स्टार एन" समय || || <math>O(n\log^*n)</math> || || सीडेल का बहुभुज त्रिभुज एल्गोरिथ्म। | ||
|- | |- | ||
| | | रैखिक अंकीय समय || || <math>O(n\log n)</math> || <math>n\log n</math>, <math>\log n!</math> || सबसे तेज़ संभव तुलना प्रकार | ||
फास्ट फूरियर ट्रांसफॉर्म। | |||
|- | |- | ||
| | | चतुर्रेखीय समय || || <math>n\text{poly}(\log n)</math> || <math>n\log^2 n</math> || [[Polynomial evaluation#Multipoint evaluation|बहुपद बहुपद मूल्यांकन]] | ||
|- | |- | ||
| | | द्विघात समय || || <math>O(n^2)</math> || <math>n^2</math> || बबल सॉर्ट, इंसर्शन सॉर्ट, डायरेक्ट कनवल्शन | ||
|- | |- | ||
| | | घन समय || || <math>O(n^3)</math> || <math>n^3</math> || दो का नादान गुणन 𝑛×𝑛 मैट्रिक्स | ||
आंशिक सहसंबंध की गणना. | |||
|- | |- | ||
| | | बहुपद समय || [[P (complexity)|P]] || <math>2^{O(\log n)}=\text{poly}(n)</math> || <math>n^2+n</math>, <math>n^{10}</math> || रैखिक प्रोग्रामिंग के लिए करमरकर का एल्गोरिदम | ||
[[AKS primality test]]<ref name="tao-aks">{{cite book|title=An epsilon of room, II: Pages from year three of a mathematical blog|last=Tao|first=Terence|publisher=American Mathematical Society|year=2010|isbn=978-0-8218-5280-4|series=Graduate Studies in Mathematics|volume=117|location=Providence, RI|pages=82–86|contribution=1.11 The AKS primality test|doi=10.1090/gsm/117|mr=2780010|author-link=Terence Tao|contribution-url=https://terrytao.wordpress.com/2009/08/11/the-aks-primality-test/}}</ref><ref>{{cite journal | last1 = Lenstra | first1 = H. W. Jr. | author1-link = Hendrik Lenstra | last2 = Pomerance | first2 = Carl | author2-link = Carl Pomerance | doi = 10.4171/JEMS/861 | issue = 4 | journal = [[Journal of the European Mathematical Society]] | mr = 3941463 | pages = 1229–1269 | title = Primality testing with Gaussian periods | url = https://math.dartmouth.edu/~carlp/aks111216.pdf | volume = 21 | year = 2019| s2cid = 127807021 }}</ref> | [[AKS primality test|एकेएस प्रारंभिक परीक्षण]]<ref name="tao-aks">{{cite book|title=An epsilon of room, II: Pages from year three of a mathematical blog|last=Tao|first=Terence|publisher=American Mathematical Society|year=2010|isbn=978-0-8218-5280-4|series=Graduate Studies in Mathematics|volume=117|location=Providence, RI|pages=82–86|contribution=1.11 The AKS primality test|doi=10.1090/gsm/117|mr=2780010|author-link=Terence Tao|contribution-url=https://terrytao.wordpress.com/2009/08/11/the-aks-primality-test/}}</ref><ref>{{cite journal | last1 = Lenstra | first1 = H. W. Jr. | author1-link = Hendrik Lenstra | last2 = Pomerance | first2 = Carl | author2-link = Carl Pomerance | doi = 10.4171/JEMS/861 | issue = 4 | journal = [[Journal of the European Mathematical Society]] | mr = 3941463 | pages = 1229–1269 | title = Primality testing with Gaussian periods | url = https://math.dartmouth.edu/~carlp/aks111216.pdf | volume = 21 | year = 2019| s2cid = 127807021 }}</ref> | ||
|- | |- | ||
| | | अर्ध-बहुपद समय || क्यूपी || <math>2^{\text{poly}(\log n)}</math> || <math>n^{\log \log n}</math>, <math>n^{\log n}</math> || निर्देशित स्टीनर ट्री समस्या के लिए सबसे प्रसिद्ध O(log2n)-सन्निकटन एल्गोरिथ्म, सबसे प्रसिद्ध समता गेम सॉल्वर,<ref>{{cite journal |author = Calude, Cristian S. and Jain, Sanjay and Khoussainov, Bakhadyr and Li, Wei and Stephan, Frank| title = Deciding Parity Games in Quasipolynomial Time| year = 2017| isbn = 9781450345286| publisher = Association for Computing Machinery| url = https://doi.org/10.1145/3055399.3055409| doi = 10.1145/3055399.3055409 | journal = Proceedings of the 49th Annual ACM SIGACT Symposium on Theory of Computing| pages = 252–263}}</ref> सबसे प्रसिद्ध ग्राफ समरूपता एल्गोरिथ्म | ||
|- | |- | ||
| | | उप-घातांकीय समय | ||
(प्रथम परिभाषा) | |||
| सबएक्सपी || <math>O(2^{n^\epsilon})</math> for all <math>\epsilon >0</math> || || इसमें बीपीपी साम्मिलित है जब तक कि एक्सएक्सएक्सटीआई (नीचे देखें) एमए के सामान्य न हो जाए.<ref name="bpp" /> | |||
|- | |- | ||
| | | उप-घातांकीय समय | ||
(दूसरी परिभाषा) | |||
| || <math>2^{o(n)}</math> || <math>2^{\sqrt[3]{n}}</math> ||पूर्णांक गुणनखंडन के लिए सर्वोत्तम मौलिक एल्गोरिदम | |||
ग्राफ समरूपता के लिए पूर्व-सर्वश्रेष्ठ एल्गोरिदम | |||
|- | |- | ||
| | | घातीय समय | ||
(रेखीय घातांक सहित) | |||
| [[E (complexity)|E]] || <math>2^{O(n)}</math> || <math>1.1^n</math>, <math>10^n</math> || डायनेमिक प्रोग्रामिंग का उपयोग करके ट्रैवलिंग सेल्समैन की समस्या का समाधान | |||
|- | |- | ||
| | | घातीय समय || [[EXPTIME|एक्सटाइम]] || <math>2^{\text{poly}(n)}</math> || <math>2^n</math>, <math>2^{n^2}</math> || ब्रूट-फोर्स खोज के माध्यम से मैट्रिक्स श्रृंखला गुणन को हल करना | ||
|- | |- | ||
| | | भाज्य समय || || <math>O(n!)</math> || <math>n!</math> || ब्रूट-फोर्स सर्च के माध्यम से ट्रैवलिंग सेल्समैन की समस्या का समाधान | ||
|- | |- | ||
| | | दोहरा घातीय समय || [[2-EXPTIME|2-एक्सटाइम]] || <math>2^{2^{\text{poly}(n)}}</math> || <math>2^{2^n}</math> || प्रेस्बर्गर अंकगणित में दिए गए कथन की सत्यता का निर्णय करना | ||
|} | |} | ||
== निरंतर समय == | |||
{{redirect|निरंतर समय|टाइमिंग आक्रमण से बचने के लिए प्रोग्रामिंग तकनीक|आक्रमण का समय#बचाव}} | |||
एक एल्गोरिदम को स्थिर समय कहा जाता है (इसे इस रूप में भी लिखा जाता है)। <math display="inline">O(1)</math> समय) यदि का मान <math display="inline">T(n)</math> (एल्गोरिदम की जटिलता) मान से बंधी है जो इनपुट के आकार पर निर्भर नहीं करती है। उदाहरण के लिए, किसी [[सरणी डेटा संरचना]] में किसी तत्व तक पहुँचने में निरंतर समय लगता है क्योंकि इसे खोजने के लिए केवल [[निर्देश (कंप्यूटर विज्ञान)]] का पालन करना पड़ता है। इसी प्रकार, आरोही क्रम में क्रमबद्ध सरणी में न्यूनतम मान ज्ञात करना; यह पहला तत्व है. चूँकि, अव्यवस्थित सरणी में न्यूनतम मान खोज निरंतर समय का संचालन नहीं है क्योंकि न्यूनतम मान निर्धारित करने के लिए सरणी में प्रत्येक [[तत्व (गणित)]] पर स्कैनिंग की आवश्यकता होती है। इसलिए यह रैखिक समय संक्रिया है <math display="inline">O(n)</math> समय चूँकि, यदि तत्वों की संख्या पहले से ज्ञात है और बदलती नहीं है, तो ऐसे एल्गोरिदम को अभी भी निरंतर समय में चलने के लिए कहा जा सकता है। | |||
= | स्थिर समय नाम के अतिरिक्त, चलने का समय समस्या के आकार से स्वतंत्र नहीं होना चाहिए, किन्तु चलने के समय की ऊपरी सीमा समस्या के आकार से स्वतंत्र होनी चाहिए। उदाहरण के लिए, कार्य के मूल्यों का आदान-प्रदान होता है {{mvar|a}} और {{mvar|b}} यदि आवश्यक हो तो कि <math display="inline">a \le b</math> इसे स्थिर समय कहा जाता है, तथापि समय इस पर निर्भर हो सकता है कि यह पहले से ही सत्य है या नहीं <math display="inline">a \le b</math>. चूँकि, कुछ स्थिरांक है {{mvar|t}} ऐसा कि आवश्यक समय सदैव अधिकतम {{mvar|t}} होता है . | ||
{{ | |||
== लघुगणकीय समय == | |||
{{Further|लघुगणकीय वृद्धि}} | |||
कहा जाता है कि एल्गोरिदम लघुगणकीय समय <math>T(n) = O(\log n)</math> लेता है .चूँकि <math>\log_a n</math> और <math>\log_b n</math> लॉगरिदमिक पहचानों से संबंधित हैं आधार बदलना, और ऐसे बिग ओ नोटेशन बड़े ओ वर्गीकरण के लिए स्थिरांक द्वारा गुणा, लॉगरिदमिक-समय एल्गोरिदम के लिए मानक उपयोग है <math>O(\log n)</math> की अभिव्यक्ति में प्रदर्शित होने वाले लघुगणक के आधार की परवाह किए बिना {{mvar|T}} उपयोग किया जाता है. | |||
लॉगरिदमिक समय लेने वाले एल्गोरिदम सामान्यतः बाइनरी पेड़ों पर संचालन में या बाइनरी खोज का उपयोग करते समय पाए जाते हैं। | |||
लॉगरिदमिक समय | एक <math>O(\log n)</math> एल्गोरिदम को अत्यधिक कुशल माना जाता है, क्योंकि संचालन की संख्या और इनपुट के आकार का अनुपात घट जाता है और शून्य हो जाता है {{mvar|n}} बढ़ती है। एल्गोरिदम जिसे अपने इनपुट के सभी तत्वों तक पहुंच चाहिए, वह लॉगरिदमिक समय नहीं ले सकता है, क्योंकि आकार के इनपुट को पढ़ने में लगने वाला समय {{mvar|n}} के क्रम {{mvar|n}} का है . | ||
शब्दकोश खोज द्वारा लघुगणकीय समय का उदाहरण दिया गया है। शब्दकोश पर विचार करें (डेटा संरचना) {{math|''D''}} जिसमें है {{mvar|n}} प्रविष्टियाँ, वर्णानुक्रम के अनुसार क्रमबद्ध। हम ऐसा मानते हैं, के लिए <math>1 \le k \le n</math>, कोई भी पहुंच सकता है {{mvar|k}} निरंतर समय में शब्दकोश कीवीं प्रविष्टि माना <math>D(k)</math> इसे निरूपित करें {{mvar|k}}फिर कोशिश करो। इन परिकल्पनाओं के अनुसार, यह देखने के लिए परीक्षण करें कि क्या कोई शब्द {{mvar|w}} शब्दकोश में लघुगणकीय समय में किया जा सकता है: विचार करें <math>D\left(\left\lfloor \frac{n}{2} \right\rfloor\right)</math>, जहाँ <math>\lfloor\;\rfloor</math> [[फर्श समारोह|फ्लोर फलन]] को दर्शाता है। यदि <math>w = D\left(\left\lfloor \frac{n}{2} \right\rfloor\right)</math>, तो हमारा काम हो गया अन्यथा, यदि <math>w < D\left(\left\lfloor \frac{n}{2} \right\rfloor\right)</math>, शब्दकोश के बाएँ आधे भाग में इसी प्रकार खोज जारी रखें, अन्यथा शब्दकोश के दाएँ आधे भाग के साथ भी इसी प्रकार जारी रखें। यह एल्गोरिदम उस विधि के समान है जिसका उपयोग अधिकांशतः पेपर डिक्शनरी में प्रविष्टि खोजने के लिए किया जाता है। | |||
शब्दकोश खोज द्वारा लघुगणकीय समय का उदाहरण दिया गया है। शब्दकोश पर विचार करें (डेटा संरचना) {{math|''D''}} जिसमें है {{mvar|n}} प्रविष्टियाँ, वर्णानुक्रम के अनुसार क्रमबद्ध। हम ऐसा मानते हैं, के लिए <math>1 \le k \le n</math>, कोई भी पहुंच सकता है {{mvar|k}}निरंतर समय में शब्दकोश कीवीं | |||
== बहुगणितीय समय == | == बहुगणितीय समय == | ||
कहा जाता है कि एल्गोरिदम [[बहुगणितीय फलन]] समय में चलता है यदि उसका समय | कहा जाता है कि एल्गोरिदम [[बहुगणितीय फलन]] समय में चलता है यदि उसका समय <math>T(n)</math> है <math>O\bigl((\log n)^k\bigr)</math> कुछ स्थिरांक के लिए {{mvar|k}}. इसे लिखने का दूसरी <math>O(\log^kn)</math> विधि है . | ||
उदाहरण के लिए, [[मैट्रिक्स श्रृंखला गुणन]] को [[समानांतर रैंडम-एक्सेस मशीन]] पर पॉलीलॉगरिदमिक समय में हल किया जा सकता है,<ref>{{cite journal | last1 = Bradford | first1 = Phillip G. | last2 = Rawlins | first2 = Gregory J. E. | last3 = Shannon | first3 = Gregory E. | doi = 10.1137/S0097539794270698 | issue = 2 | journal = [[SIAM Journal on Computing]] | mr = 1616556 | pages = 466–490 | title = पॉलीलॉग समय में कुशल मैट्रिक्स श्रृंखला क्रम| volume = 27 | year = 1998}}</ref> और ग्राफ़ (असतत गणित) [[गतिशील कनेक्टिविटी]] विधि से प्लानरिटी परीक्षण हो सकता है <math>O(\log^3n)</math> प्रति डालने/हटाने की कार्रवाई में लगने वाला समय है।<ref>{{cite conference | last1 = Holm | first1 = Jacob | last2 = Rotenberg | first2 = Eva | editor1-last = Makarychev | editor1-first = Konstantin | editor2-last = Makarychev | editor2-first = Yury | editor3-last = Tulsiani | editor3-first = Madhur | editor4-last = Kamath | editor4-first = Gautam | editor5-last = Chuzhoy | editor5-first = Julia | editor5-link = Julia Chuzhoy | arxiv = 1911.03449 | contribution = Fully-dynamic planarity testing in polylogarithmic time | doi = 10.1145/3357713.3384249 | pages = 167–180 | publisher = Association for Computing Machinery | title = Proceedings of the 52nd Annual ACM SIGACT Symposium on Theory of Computing, STOC 2020, Chicago, IL, USA, June 22-26, 2020 | year = 2020}}</ref> | |||
== उप-रैखिक समय == | == उप-रैखिक समय == | ||
कहा जाता है कि एल्गोरिदम सब-लीनियर टाइम | कहा जाता है कि एल्गोरिदम सब-लीनियर टाइम <math>T(n)=o(n)</math> (अधिकांशतः सब-लीनियर टाइम लिखा जाता है) में चलता है . विशेष रूप से इसमें ऊपर परिभाषित समय जटिलताओं वाले एल्गोरिदम सम्मिलित हैं। | ||
विशिष्ट एल्गोरिदम जो | विशिष्ट एल्गोरिदम जो स्पष्ट होते हैं और फिर भी उप-रेखीय समय में चलते हैं, [[समानांतर एल्गोरिदम]] का उपयोग करते हैं ([[एनसी (जटिलता)]] के रूप में)<sup>1</sup>मैट्रिक्स निर्धारक गणना करता है), या वैकल्पिक रूप से इनपुट संरचना पर गारंटीकृत धारणाएं रखता है (जैसा कि लॉगरिदमिक समय [[बाइनरी खोज एल्गोरिदम]] और कई पेड़ रखरखाव एल्गोरिदम करते हैं)। चूँकि, [[औपचारिक भाषा]]एँ जैसे कि सभी स्ट्रिंग्स का समुच्चय जिसमें पहले द्वारा इंगित स्थिति में 1-बिट होता है <math>\log n</math> स्ट्रिंग के बिट्स इनपुट के प्रत्येक बिट पर निर्भर हो सकते हैं और फिर भी उप-रेखीय समय में गणना योग्य हो सकते हैं। | ||
विशिष्ट शब्द सबलाइनियर टाइम एल्गोरिदम | विशिष्ट शब्द सबलाइनियर टाइम एल्गोरिदम सामान्यतः उन एल्गोरिदम के लिए आरक्षित होता है जो उपरोक्त के विपरीत होते हैं क्योंकि वे मौलिक सीरियल मशीन मॉडल पर चलते हैं और इनपुट पर पूर्व धारणाओं की अनुमति नहीं होती है।<ref>{{cite journal | last1 = Kumar | first1 = Ravi | last2 = Rubinfeld | first2 = Ronitt | author2-link = Ronitt Rubinfeld | title = सबलाइनियर टाइम एल्गोरिदम| journal = [[SIGACT News]] | volume = 34 | issue = 4 | pages = 57–67 | url = http://www.cs.princeton.edu/courses/archive/spr04/cos598B/bib/kumarR-survey.pdf | year = 2003 | doi = 10.1145/954092.954103| s2cid = 65359 }}</ref> चूँकि, उन्हें [[यादृच्छिक एल्गोरिदम]] होने की अनुमति है, और वास्तव में सबसे तुच्छ कार्यों को छोड़कर सभी के लिए यादृच्छिक किया जाना चाहिए। | ||
चूँकि ऐसे एल्गोरिदम को पूरे इनपुट को पढ़े बिना उत्तर देना | चूँकि ऐसे एल्गोरिदम को पूरे इनपुट को पढ़े बिना उत्तर देना होता है, इसका विवरण अधिक सीमा तक इनपुट तक पहुंच की अनुमति पर निर्भर करता है। सामान्यतः इनपुट के लिए जिसे बाइनरी स्ट्रिंग <math>b_1, ..., b_k</math> के रूप में दर्शाया जाता है यह माना जाता है कि एल्गोरिदम समय में हो सकता है <math>O(1)</math> अनुरोध करें और इसका मूल्य प्राप्त करें <math>b_i</math> किसी {{mvar|i}} के लिए होता है . | ||
उप-रेखीय समय एल्गोरिदम | |||