बिग O संकेतन एक गणितीय संकेतन है जो किसी फलन के सीमित व्यवहार का वर्णन करता है जब तर्क किसी विशिष्ट मूल्य या अनन्तता की ओर प्रवृत होता है। बिग ओ पॉल गुस्ताव[1],एडमंड लैंडौ[2]और अन्य द्वारा आविष्कार संबंधित अनंतस्पर्शी संकेतन पद्धति का सदस्य है,जिन्हें सामूहिक रूप से बैचमैन-लैंडौ संकेतन या अनंतस्पर्शी संकेतन कहा जाता है। अक्षर O को बैचमैन द्वारा चुना गया था का प्रतीकऑर्डनंग है जिसका अर्थ सन्निकटन का क्रम है।
कंप्यूटर विज्ञान में, बिग O संकेतन का उपयोग कलन विधि को वर्गीकृत करने के लिए किया जाता है,जिसके अनुसार कैसे उनके रन टाइम या रिक्त स्थान की आवश्यकताएं निविष्ट के आकार के बढ़ने के साथ बढ़ती हैं।[3]विश्लेषणात्मक संख्या सिद्धांत में,बिग O संकेतन का उपयोग अधिकांशतः अंकगणितीय फलन और एक बेहतर समझी गई सन्निकटन के बीच अंतर पर सीमा व्यक्त करने के लिए किया जाता है; इस तरह के अंतर का प्रसिद्ध उदाहरण अभाज्य संख्या प्रमेय में शेष पद है।समान अनुमान प्रदान करने के लिए कई अन्य क्षेत्रों में भी बिग O संकेतन का उपयोग किया जाता है।
बिग O संकेतन उनकी विकास दर के अनुसार फलनों को चित्रित करता है: समान अनंतस्पर्शी वृद्धि दर वाले विभिन्न फलनों को ही O संकेतन का उपयोग करके दर्शाया जा सकता है।अक्षर 'O' का उपयोग किया जाता है क्योंकि किसी फलन की वृद्धि दर को फलन का क्रम भी कहा जाता है।बिग O संकेतन के संदर्भ में किसी फलन का विवरण सामान्यतः फलन की वृद्धि दर पर केवल ऊपरी सीमा प्रदान करना है।
बिग O संकेतन के साथ संबद्ध कई संबंधित संकेतन हैं जो अनंतस्पर्शी वृद्धि दर पर अन्य प्रकार की सीमाओं का वर्णन करने के लिए प्रतीकों o, Ω, ω, और Θ का प्रयोग करते हैं।
माना , जिस फलन का अनुमान लगाया जाना है, वह वास्तविक संख्या या जटिल संख्या के मान वाला फलन हो और माना , तुलना फलन,एक वास्तविक मान वाला फलन हो। मान लीजिए कि दोनों फलनों को धनात्मक वास्तविक संख्याओं के कुछ अपरिबद्ध उपसमुच्चय पर परिभाषित किया गया है,और के सभी बड़े पर्याप्त मानों के लिए पूर्ण रूप से धनात्मक हो।[4] एक लिखा जाता है
और इसे पढ़ते है ", का बिग O है" यदि के सभी पर्याप्त बड़े मानों के लिए का निरपेक्ष मान, का अधिकतम धनात्मक अचर गुणज है। वह है कि यदि एक धनात्मक वास्तविक संख्या और एक वास्तविक संख्या उपस्थित है तो
कई संदर्भों में, यह धारणा कि हम चर के रूप में वृद्धि दर में रुचि रखते हैं जो अनंत तक जाता है,उसे अघोषित छोड़ दिया जाता है,और इसे अधिक सरलता से लिखा जाता है
संकेतन का उपयोग के व्यवहार का वर्णन करने के लिए भी किया जा सकता है किसी वास्तविक संख्या के निकट(अधिकांशतः, ): हम कहते हैं
यदि धनात्मक संख्याएँ और उपस्थित हैं ऐसा कि ,के साथ सभी के लिए परिभाषित है
जैसा कि के कुछ मानों के लिए, को पूर्ण रूप से धनात्मक होने के लिए चुना गया है,इन दोनों परिभाषाओं की अधिकतम सीमा का उपयोग करके एकीकृत किया जा सकता है:
यदि
और इन दोनों परिभाषाओं में सीमा बिंदु (चाहे या नहीं) और के डोमेन का क्लस्टर बिंदु है उदाहरण के रूप में के प्रत्येक निकट में इसमें अपरिमित रूप से कई बिंदु समान होने चाहिए। इसके अतिरिक्त,जैसा कि निम्न सीमा और अधिकतम सीमा के बारे में लेख में बताया गया है (कम से कम विस्तारित वास्तविक संख्या रेखा पर) सदैव उपस्थित रहता है।
कंप्यूटर विज्ञान में, थोड़ी अधिक प्रतिबंधात्मक परिभाषा सामान्य है: और दोनों को धनात्मक पूर्णांक के कुछ असंबद्ध उपसमुच्चय से गैर-ऋणात्मक वास्तविक संख्याओं तक फलन होना आवश्यक है; तब यदि धनात्मक पूर्णांक संख्याएँ और उपस्थित हों तो सभी के लिए है।[5]
उदाहरण
सामान्य उपयोग में O संकेतन अनंतस्पर्शी है,अर्थात यह बहुत बड़े x को संदर्भित करता है।इस समायोजन में,सबसे तेज़ी से बढ़ने वाले शब्दों का योगदान अंततः अन्य को असंबद्ध बना देगा। परिणामस्वरूप, निम्नलिखित सरलीकरण नियम प्रयुक्त किए जा सकते हैं:
यदि f(x) कई पदों का योग है,यदि कोई सबसे अधिक वृद्धि दर वाला है,तो उसे रखा जा सकता है,और अन्य सभी को छोड़ा जा सकता है।
यदि f(x) कई कारकों का उत्पाद है, किसी भी स्थिरांक (उत्पाद में ऐसे कारक जो निर्भर नहीं होते हैं x) को छोड़ा जा सकता।
उदाहरण के लिए, माना f(x) = 6x4 − 2x3 + 5,और मान लीजिए कि हम O संकेतन का उपयोग करके इस फलन को सरल बनाना चाहते हैं,इसकी वृद्धि दर को इस प्रकार वर्णित करने के लिए x अनंत तक पहुंचता है।यह फलन तीन पदों का योग है: 6x4, −2x3, और 5. इन तीन पदों से,x के फलन के सबसे बड़े घातांक के रूप में है कोई उच्चतम वृद्धि दर वाला,नामतः 6x4 है।अब कोई दूसरा नियम प्रयुक्त कर सकता है:6 और x4 का उत्पाद 6x4 है जिसमें पहला कारक x पर निर्भर नहीं करता है।इस कारक को छोड़ने से सरलीकृत रूप x4 में परिणाम मिलता है।इस प्रकार,हम कहते हैं कि f(x),x4का "बिग O" है।गणितीय रूप से, हम f(x) = O(x4) लिख सकते है।कोई औपचारिक परिभाषा का उपयोग करके इस गणना की पुष्टि कर सकता है:माना f(x) = 6x4 − 2x3 + 5 और g(x) = x4। उपरोक्त से औपचारिक परिभाषा को प्रयुक्त करते हुए कथन है कि f(x) = O(x4) इसके विस्तार के समतुल्य है,
कुछ उपयुक्त विकल्प एक वास्तविक संख्या x0 और एक धनात्मक वास्तविक संख्या M और सभी x > x0के लिए।इसे सिद्ध करने के लिए, माना x0 = 1 और M = 13. तब, सभी x > x0 के लिए:
इसलिए
उपयोग
बिगओनोटेशन के अनुप्रयोग के दो मुख्य क्षेत्र हैं:
गणित में, इसका उपयोग सामान्यतः बिगओनोटेशन इनफिनिटेसिमल एसिम्प्टोटिक्स का वर्णन करने के लिए किया जाता है, विशेष रूप से काटे गए टेलर श्रृंखला या एसिम्प्टोटिक विस्तार के स्थिति में वर्णन करने के लिए किया जाता है
दोनों अनुप्रयोगों में, फलन g(x) के अन्दर प्रदर्शित हो रहा है O(·) को सामान्यतः यथासंभव सरल चुना जाता है, निरंतर कारकों और निचले क्रम की नियमो को छोड़ दिया जाता है।
इस नोटेशन के दो औपचारिक रूप से निकट, किन्तु स्पष्ट रूप से भिन्न उपयोग हैं:
यह अंतर केवल अनुप्रयोग में है और सिद्धांत रूप में नहीं, चूँकि - बड़े O के लिए औपचारिक परिभाषा दोनों स्थितियों के लिए समान है, केवल फलन तर्क के लिए अलग-अलग सीमाएं हैं।
एल्गोरिदम के विश्लेषण में सामान्यतः उपयोग किए जाने वाले फलन के ग्राफ़, संचालन की संख्या दर्शाते हैं N बनाम इनपुट आकार nप्रत्येक फलन के लिए
दक्षता के लिए एल्गोरिदम का विश्लेषण करते समय बिगओनोटेशन उपयोगी होता है। उदाहरण के लिए, आकार की समस्या को पूरा करने में लगने वाला समय (या चरणों की संख्या) n पाया जा सकता है T(n) = 4n2 − 2n + 2. जैसा n बड़ा हो जाता है, n2सारांश हावी हो जाएगा, जिससे अन्य सभी नियमो की उपेक्षा की जा सके - उदाहरण के लिए जब n = 500, शब्द 4n2 से 1000 गुना बड़ा है 2n अवधि उत्तरार्द्ध को अनदेखा करने से अधिकांश उद्देश्यों के लिए अभिव्यक्ति के मूल्य पर नगण्य प्रभाव पड़ेगा। इसके अतिरिक्त, यदि हम अभिव्यक्ति के सन्निकटन के किसी अन्य आदेश से तुलना करते हैं, जैसे कि पद युक्त अभिव्यक्ति, तो गुणांक अप्रासंगिक हो जाते हैं n3 या n4. तथापि T(n) = 1,000,000n2, यदि U(n) = n3, बाद वाला सदैव पहले वाले से बार अधिक होगा n से बड़ा हो जाता है 1,000,000 (T(1,000,000) = 1,000,0003 = U(1,000,000)). इसके अतिरिक्त, चरणों की संख्या मशीन मॉडल के विवरण पर निर्भर करती है जिस पर एल्गोरिदम चलता है, किन्तु विभिन्न प्रकार की मशीनें सामान्यतः एल्गोरिदम को निष्पादित करने के लिए आवश्यक चरणों की संख्या में केवल स्थिर कारक से भिन्न होती हैं। जिससे बड़ा O नोटेशन जो बचता है उसे पकड़ लेता है: हम या तो लिखते हैं
या
और कहें कि एल्गोरिदम का क्रम है n2 समय जटिलता. संकेत का अभिप्राय अपने सामान्य गणितीय अर्थ में सामान्य को व्यक्त करना नहीं है, किन्तु अधिक बोलचाल की भाषा है, इसलिए दूसरी अभिव्यक्ति को कभी-कभी अधिक स्पष्ट माना जाता है (नीचे सामान्य चिह्न चर्चा देखें) जबकि पहली को कुछ लोगों द्वारा दुरुपयोग माना जाता है .[6]
अनंतिम स्पर्शोन्मुखता
बिगओका उपयोग टेलर श्रृंखला अनुमान त्रुटि और गणितीय फलन के सन्निकटन में अभिसरण का वर्णन करने के लिए भी किया जा सकता है। सबसे महत्वपूर्ण शब्दों को स्पष्ट रूप से लिखा जाता है, और फिर सबसे कम महत्वपूर्ण शब्दों को बड़े O शब्द में संक्षेपित किया जाता है। उदाहरण के लिए, एक्सपोनेंशियल फलन औपचारिक परिभाषा और इसकी दो अभिव्यक्तियों पर विचार करें जो कब मान्य हैं
दूसरा व्यंजक O(x3 का अर्थ है त्रुटि ex − (1 + x + x2/2) का निरपेक्ष मान अधिक से अधिक कुछ स्थिर |x3| समय है जब x 0 के अधिक निकट होता है।
गुण
यदि फलन f को अन्य फलनों के सीमित योग के रूप में लिखा जा सकता है, फिर सबसे तेजी से बढ़ने वाला क्रम f(n) निर्धारित करता है उदाहरण के लिए,
विशेष रूप से, यदि कोई फलन किसी बहुपद n से घिरा हो सकता है , फिर ऐसे n अनंत की ओर प्रवृत्त होता है, कोई बहुपद के निचले-क्रम वाले पदों की उपेक्षा कर सकता है। सेट O(nc) और O(cn) बहुत अलग हैं. यदि c से बड़ा है, तो बाद वाला बहुत तेजी से बढ़ता है। फलन जो तेजी से बढ़ता है nc किसी के लिए c को सुपरपोलिनोमियल कहा जाता है। वह जो प्रपत्र के किसी भी घातांकीय फलन की तुलना में अधिक धीरे-धीरे बढ़ता है cn को उपघातीय कहा जाता है। एल्गोरिदम को ऐसे समय की आवश्यकता हो सकती है जो सुपरपोलिनोमियल और सबएक्सपोनेंशियल दोनों हो; इसके उदाहरणों में पूर्णांक गुणनखंडन और फलन nlog n के लिए सबसे तेज़ ज्ञात एल्गोरिदम सम्मिलित हैं .
हम किसी भी शक्ति को नजरअंदाज कर सकते हैं n लघुगणक के अंदर सेट O(log n) बिलकुल वैसा ही है O(log(nc)). लघुगणक केवल स्थिर कारक से भिन्न होते हैं (क्योंकि log(nc) = c log n) और इस प्रकार बड़ा O नोटेशन इसे अनदेखा कर देता है। इसी प्रकार, विभिन्न स्थिर आधारों वाले लॉग समतुल्य होते हैं। दूसरी ओर, विभिन्न आधारों वाले घातांक ही क्रम के नहीं होते हैं। उदाहरण के लिए, 2n और 3n समान क्रम के नहीं हैं।
बदलती इकाइयाँ परिणामी एल्गोरिदम के क्रम को प्रभावित कर भी सकती हैं और नहीं भी। इकाइयों को बदलना, जहां कहीं भी दिखाई दे, उचित चर को स्थिरांक से गुणा करने के सामान्य है। उदाहरण के लिए, यदि कोई एल्गोरिदम क्रम में चलता है n2, प्रतिस्थापित करना n द्वारा cn का अर्थ है कि एल्गोरिदम क्रम में चलता है c2n2, और बड़ा O अंकन स्थिरांक को अनदेखा करता है c2. इसे ऐसे लिखा जा सकता है c2n2 = O(n2). यदि, तथापि, एल्गोरिथ्म के क्रम में चलता है 2n, प्रतिस्थापित करना n साथ cn देता है 2cn = (2c)n. यह इसके सामान्य नहीं है 2n सामान्य रूप में। चर बदलने से परिणामी एल्गोरिदम का क्रम भी प्रभावित हो सकता है। उदाहरण के लिए, यदि किसी एल्गोरिदम का रन टाइम है O(n) जब संख्या के संदर्भ में मापा जाता है n किसी इनपुट संख्या के अंकों का x, तो इसका रन टाइम है O(log x) जब इनपुट संख्या के फलन के रूप में मापा जाता है
उत्पाद
योग
यदि और तब . यह इस प्रकार है कि यदि और तब . दूसरे शब्दों में, यह दूसरा कथन यही कहता है उत्तल शंकु है.
एक स्थिरांक से गुणा
माना k शून्येतर स्थिरांक है। तब . दूसरे शब्दों में, यदि , तब
एकाधिक चर
बिगओ(और छोटेO, Ω, आदि) का उपयोग कई वेरिएबल्स के साथ भी किया जा सकता है। कई चरों के लिए बड़े O को औपचारिक रूप से परिभाषित करने के लिए, मान लीजिए और के कुछ उपसमुच्चय पर परिभाषित दो कार्य हैं . हम कहते हैं
यदि और केवल यदि स्थिरांक और उपस्थित हैं ऐसा है कि सभी के लिए साथ कुछ के लिए [7] समान रूप से, नियम यह है कि कुछ के लिए लिखा जा सकता है , जहाँ चेबीशेव मानदंड को दर्शाता है। उदाहरण के लिए, कथन
प्रमाणित करता है कि ऐसे स्थिरांक C और M उपस्थित हैं
जब भी या तो या धारण करता है. यह परिभाषा सभी निर्देशांकों की अनुमति देती है अनंत तक बढ़ना. विशेष रूप से, कथन
(अर्थात।, ) से अधिक अलग है
(अर्थात।, ).
इस परिभाषा के अनुसार, उपसमुच्चय जिस पर फलन परिभाषित किया गया है, यूनीवेरिएट सेटिंग से मल्टीवेरिएट सेटिंग में कथनों को सामान्यीकृत करते समय महत्वपूर्ण होता है। उदाहरण के लिए, यदि और , तब यदि हम प्रतिबंधित करते हैं और को , किन्तु तब नहीं जब उन्हें परिभाषित द्वारा किया गया होता है.
बहुभिन्नरूपी फलनों के लिए बड़े O का यह एकमात्र सामान्यीकरण नहीं है, और व्यवहार में, परिभाषा के चुनाव में कुछ असंगतता है।[8]
अंकन के स्थिति
सामान्य का चिह्न
कथन "f(x) O(g(x)) है" जैसा कि ऊपर परिभाषित है, सामान्यतः f(x) = O(g(x)) के रूप में लिखा जाता है। कुछ लोग इसे संकेतन का दुरुपयोग मानते हैं क्योंकि बराबर चिह्न का उपयोग भ्रामक हो सकता है क्योंकि यह एक समरूपता का सुझाव देता है जो इस कथन में नहीं है। जैसा कि निकोलस गोवर्ट डी ब्रुइज़न कहते हैं, O(x) = O(x2) सत्य है किन्तु O(x2) = O(x) नहीं है।[9]डोनाल्ड नुथ ऐसे कथनों को "एकतरफ़ा समानता" के रूप में वर्णित करते हैं क्योंकि यदि पक्षों को उलटा किया जा सकता है, "हम पहचान n = O(n2) और n2 = O(n2) से n = n2 जैसी हास्यास्पद चीजें निकाल सकते हैं।[10] एक अन्य पत्र में नथ ने यह भी बताया कि "समानता चिह्न ऐसे अंकन के संबंध में सममित नहीं है" जैसा कि इस अंकन में है "गणितज्ञ परंपरागत रूप से चिह्न का उपयोग करते हैं क्योंकि वे अंग्रेजी में "is" शब्द का उपयोग करते हैं: अरस्तू एक आदमी है किन्तु एक आदमी है आवश्यक नहीं कि अरस्तू ही हो"।[11]
इन कारणों से सेट नोटेशन का उपयोग करना और f(x) ∈ O(g(x)) लिखना अधिक स्पष्ट होता है (इस प्रकार पढ़ें: "f(x) O(g(x)) का एक तत्व है", या " f(x) सेट O(g(x))") में है, O(g(x)) को सभी फलन h(x) के वर्ग के रूप में सोचते हुए |h(x)| ≤ कुछ सकारात्मक वास्तविक संख्या C के लिए Cg(x) चूँकि [10], बराबर चिह्न का उपयोग प्रथागत है।[9][10]
अन्य अंकगणितीय ऑपरेटर
बिगओनोटेशन का उपयोग अधिक जटिल समीकरणों में अन्य अंकगणितीय ऑपरेटरों के साथ संयोजन में भी किया जा सकता है। उदाहरण के लिए, h(x) + O(f(x)) h(x) की वृद्धि के साथ-साथ भाग वाले फलनों के संग्रह को दर्शाता है जिसकी वृद्धि f(x) तक सीमित है। इस प्रकार,
के समान ही व्यक्त करता है
उदाहरण
मान लीजिए कि n तत्वों के सेट पर काम करने के लिए कलन विधि विकसित किया जा रहा है। इसके डेवलपर्स फलन T(n) खोजने में रुचि रखते हैं जो यह व्यक्त करेगा कि इनपुट सेट में तत्वों की संख्या के संदर्भ में एल्गोरिदम को चलने में कितना समय लगेगा (समय के कुछ इच्छानुसार माप में)। एल्गोरिदम सेट में तत्वों को क्रमबद्ध करने के लिए पहले सबरूटीन को कॉल करके काम करता है और फिर अपने स्वयं के संचालन करता है। इस प्रकार मेंO (n2) की ज्ञात समय जटिलता है), और सबरूटीन चलने के बाद एल्गोरिदम को अतिरिक्त लेना होगा 55n3 + 2n + 10 समाप्त होने से पहले के चरण इस प्रकार एल्गोरिथ्म की समग्र समय जटिलता को इस प्रकार व्यक्त किया जा सकता है T(n) = 55n3 + O(n2). यहाँ नियम 2n + 10 तेजी से बढ़ने वालेO (n2) में समाहित हो गए हैं). फिर, यह उपयोग प्रतीक के कुछ औपचारिक अर्थों की उपेक्षा करता है, किन्तु यह प्रकार के सुविधाजनक प्लेसहोल्डर के रूप में बड़े O नोटेशन का उपयोग करने की अनुमति देता है।
एकाधिक उपयोग
अधिक जटिल उपयोग में,O(·) समीकरण में विभिन्न स्थानों पर प्रकट हो सकता है, यहाँ तक कि प्रत्येक पक्ष पर कई बार भी उदाहरण के लिए, निम्नलिखित सत्य हैं :
ऐसे कथनों का अर्थ इस प्रकार है: किसी भी फलन के लिए जो बाईं ओर प्रत्येकO(·) को संतुष्ट करता है, दाईं ओर प्रत्येकO(·) को संतुष्ट करने वाले कुछ फलन हैं, जैसे कि इन सभी फलनों को समीकरण में प्रतिस्थापित करना बनता है दो पक्ष सामान्य. उदाहरण के लिए, उपरोक्त तीसरे समीकरण का अर्थ है: किसी भी फलन f(n) =O(1) के लिए, कुछ फलन g(n) =O(en) है) ऐसा कि nf(n) = g(n). उपरोक्त सेट नोटेशन के संदर्भ में, अर्थ यह है कि बाईं ओर द्वारा दर्शाए गए फलनों का वर्ग दाईं ओर द्वारा दर्शाए गए फलनों के वर्ग का उपसमूह है। इस प्रयोग में औपचारिक प्रतीक है जो = के सामान्य प्रयोग के विपरीत सममित संबंध नहीं है। इस प्रकार उदाहरण के लिए nO(1) = O(en) गलत कथन O(en) = nO(1) का संकेत नहीं देता है .
टाइपसेटिंग
बिगओको इटैलिकाइज़्ड अपरकेस O के रूप में टाइप किया गया है, जैसा कि निम्नलिखित उदाहरण में है: .[12][13]टेक्स में, यह केवल गणित मोड के अंदर O टाइप करके निर्मित होता है। ग्रीक-नामांकित बैचमैन-लैंडौ नोटेशन के विपरीत, इसे किसी विशेष प्रतीक की आवश्यकता नहीं है। फिर भी, कुछ लेखक सुलेख संस्करण का उपयोग करते हैं ।[14][15]
यहां उन फलन के वर्गों की सूची दी गई है जो सामान्यतः एल्गोरिदम के चलने के समय का विश्लेषण करते समय सामने आते हैं। प्रत्येक स्थिति में, c धनात्मक स्थिरांक है और n बिना किसी सीमा के बढ़ता है। धीमी गति से बढ़ने वाले फलनों को सामान्यतः पहले सूचीबद्ध किया जाता है।
स्कूली पुस्तक गुणन द्वारा दो n-अंकीय संख्याओं को गुणा करना; सरल सॉर्टिंग एल्गोरिदम, जैसे बबल सॉर्ट, चयन सॉर्ट और इंसर्शन सॉर्ट; (सबसे खराब स्थिति) कुछ सामान्यतः तेज़ सॉर्टिंग एल्गोरिदम जैसे कि क्विकॉर्ट, शेलसॉर्ट और ट्री सॉर्ट पर बाध्य
बहुपद या बीजगणितीय
वृक्ष-आसन्न व्याकरण विश्लेषण; द्विदलीय ग्राफ़ के लिए अधिकतम मिलान; एलयू अपघटन के साथ निर्धारक का पता लगाना
एल-नोटेशन या उप-घातांकीय
द्विघात छलनी या संख्या क्षेत्र छलनी का उपयोग करके किसी संख्या का गुणनखंड करना
गतिशील प्रोग्रामिंग का उपयोग करके ट्रैवलिंग सेल्समैन समस्या का (सटीक) समाधान ढूंढना; पाशविक-बल खोज का उपयोग करके यह निर्धारित करना कि क्या दो तार्किक कथन समतुल्य हैं
क्रूर-बल खोज के माध्यम से ट्रैवलिंग सेल्समैन की समस्या का समाधान; किसी पोसेट के सभी अप्रतिबंधित क्रमपरिवर्तन उत्पन्न करना; लाप्लास विस्तार के साथ निर्धारक का पता लगाना; एक सेट के सभी विभाजनों की गणना करना
कथन कभी-कभी कमजोर हो जाता है स्पर्शोन्मुख जटिलता के लिए सरल सूत्र प्राप्त करता है किसी के लिए और , का उपसमुच्चय है किसी के लिए , इसलिए इसे किसी बड़े क्रम वाला बहुपद माना जा सकता है।
संबंधित स्पर्शोन्मुख संकेतन
कंप्यूटर विज्ञान में बिगओका व्यापक रूप से उपयोग किया जाता है। कुछ अन्य संबंधित नोटेशनों के साथ, यह बैचमैन-लैंडौ नोटेशन के वर्ग का निर्माण करता है।
लिटिल-ओ नोटेशन
"लिटिल ओ" redirects here. For बेसबॉल खिलाड़ी, see उमर विज़क्वेल.
सहज रूप से, प्रमाणित "f(x) o(g(x)) है" (पढ़ें "f(x) g(x) का छोटा-o है") का अर्थ है कि g(x) f(x) की तुलना में बहुत तेजी से बढ़ता है . पहले की तरह, मान लीजिए कि f एक वास्तविक या जटिल मान वाला फलन है और g एक वास्तविक मान वाला फलन है, दोनों को सकारात्मक वास्तविक संख्याओं के कुछ असीमित उपसमुच्चय पर परिभाषित किया गया है, जैसे कि x के सभी बड़े पर्याप्त मानों के लिए g(x) सख्ती से सकारात्मक है।
यदि प्रत्येक सकारात्मक स्थिरांक के लिए वहां स्थिरांक ε उपस्थित है ऐसा है कि
औपचारिक परिभाषा|बिग-ओ संकेतन की परिभाषा और छोटे-ओ की परिभाषा के बीच अंतर यह है कि जहां पूर्व को कम से कम स्थिरांक एम के लिए सत्य होना चाहिए, वहीं बाद वाले को प्रत्येक सकारात्मक स्थिरांक के लिए मान्य होना चाहिए ε,चूँकि छोटा [17] इस तरह, लिटिल-ओ नोटेशन संबंधित बिग-ओ नोटेशन की तुलना में सशक्त कथन बनाता है: प्रत्येक फलन जो कि जी का छोटा-ओ है, वह भी जी का बड़ा-ओ है, किन्तु प्रत्येक फलन जो जी का बड़ा-ओ है वह भी नहीं है जी का छोटा-ओ. उदाहरण के लिए, किन्तु .
चूँकि g(x) अशून्य है, या कम से कम निश्चित बिंदु से परे अशून्य हो जाता है, संबंध के सामान्य है
(और वास्तव में लैंडौ ऐसा ही है [16] मूल रूप से लिटिल-ओ नोटेशन को परिभाषित किया गया था)।
लिटिल-ओ कई अंकगणितीय संक्रियाओं का सम्मान करता है। उदाहरण के लिए,
एक अन्य स्पर्शोन्मुख संकेतन है , बिग ओमेगा पढ़ें।[18] कथन की दो व्यापक और असंगत परिभाषाएँ हैं
जैसा ,
जहां a कुछ वास्तविक संख्या है, ∞, या −∞, जहां f और g, a के निकट में परिभाषित वास्तविक कार्य हैं, और जहां g इस निकट में सकारात्मक है।
हार्डी-लिटलवुड परिभाषा का उपयोग मुख्य रूप से विश्लेषणात्मक संख्या सिद्धांत में किया जाता है, और नुथ परिभाषा का उपयोग मुख्य रूप से कम्प्यूटेशनल जटिलता सिद्धांत में किया जाता है; परिभाषाएँ समतुल्य नहीं हैं.
1916 में उन्हीं लेखकों ने दो नये प्रतीक प्रस्तुत किये और , के रूप में परिभाषित:[20]
जैसा यदि ;
जैसा यदि
इन प्रतीकों का प्रयोग 1924 में एडमंड लैंडौ द्वारा इन्हीं अर्थों में किया गया था।[21] लांडौ के बाद, नोटेशन का दोबारा कभी भी स्पष्ट रूप से उपयोग नहीं किया गया था; और .
ये तीन प्रतीक , साथ ही (कारण है कि और दोनों संतुष्ट हैं), अब वर्तमान में विश्लेषणात्मक संख्या सिद्धांत में उपयोग किया जाता है।[22][23]
सरल उदाहरण
अपने पास
जैसा
और अधिक स्पष्ट रूप से
जैसा
अपने पास
जैसा
और अधिक स्पष्ट रूप से
जैसा
चूँकि
जैसा
नथ परिभाषा
1976 में डोनाल्ड नथ ने अपने उपयोग को उचित ठहराने के लिए पेपर प्रकाशित किया था -एक सशक्त संपत्ति का वर्णन करने के लिए प्रतीक।[24] नुथ ने लिखा: कंप्यूटर विज्ञान में अब तक मैंने जितने भी अनुप्रयोग देखे हैं, उनके लिए सशक्त आवश्यकता कहीं अधिक उपयुक्त है। उन्होंने परिभाषित किया था
टिप्पणी के साथ:चूँकि मैंने हार्डी और लिटिलवुड की परिभाषा बदल दी है , मुझे ऐसा करना उचित लगता है क्योंकि उनकी परिभाषा किसी भी तरह से व्यापक उपयोग में नहीं है, और क्योंकि तुलनात्मक रूप से दुर्लभ स्थितियों में जब उनकी परिभाषा प्रयुक्त होती है जिससे वे जो कहना चाहते हैं उसे कहने के अन्य विधि भी हैं।[24]
उपरोक्त g द्वारा (स्थिरांक कारक तक) असम्बद्ध रूप से परिबद्ध है
बड़ी थीटा
f ऊपर और नीचे दोनों तरफ g से असम्बद्ध रूप से घिरा हुआ है
and (नुथ संस्करण)
के आदेश पर
f, स्पर्शोन्मुख रूप से g के बराबर है
जटिलता सिद्धांत में बड़ा ओमेगा (नुथ)
f को नीचे g द्वारा असम्बद्ध रूप से परिबद्ध किया गया है
छोटा ओमेगा
एफ स्पर्शोन्मुख रूप से जी पर हावी है
संख्या सिद्धांत में बड़ा ओमेगा (हार्डी-लिटलवुड)
जी पर लक्षणात्मक रूप से प्रभुत्व नहीं है
Failed to parse (Conversion error. Server ("cli") reported: "SyntaxError: Expected "-", "[", "\\", "\\begin", "\\begin{", "]", "^", "_", "{", "}", [ \t\n\r], [%$], [().], [,:;?!'], [/|], [0-9], [><~], [\-+*=], or [a-zA-Z] but "ग" found.in 1:76"): {\displaystyle \limsup_{n \to \infty} \frac{\left|f(n)\right|}{g(n)} > 0 </गणित> |} सीमा परिभाषाएँ मानती हैं पर्याप्त रूप से बड़े के लिए गणित>जी(एन) <math>g(n) > 0}
. तालिका को (आंशिक रूप से) इस अर्थ में सबसे छोटे से सबसे बड़े तक क्रमबद्ध किया गया है (नुथ का संस्करण) फलनों पर अनुरूप हैं असली लाइन पर [27] (हार्डी-लिटलवुड संस्करण , चूँकि, ऐसे किसी भी विवरण के अनुरूप नहीं है)।
कंप्यूटर विज्ञान बड़ा उपयोग करता है , बड़ी थीटा , थोड़ा , थोड़ा ओमेगा और नुथ का बड़ा ओमेगा संकेतन.[28] विश्लेषणात्मक संख्या सिद्धांत अधिकांशतः बड़े का उपयोग करता है , छोटा , हार्डी-लिटलवुड का बड़ा ओमेगा (+, − या ± सबस्क्रिप्ट के साथ या उसके बिना) और संकेतन.[22] छोटा ओमेगा विश्लेषण में अंकन का प्रयोग उतनी बार नहीं किया जाता है।[29]
Here is a list of classes of functions that are commonly encountered when analyzing the running time of an algorithm. In each case, c is a positive constant and n increases without bound. The slower-growing functions are generally listed first.
The statement is sometimes weakened to to derive simpler formulas for asymptotic complexity. For any and , is a subset of for any , so may be considered as a polynomial with some bigger order.
अनौपचारिक रूप से, विशेष रूप से कंप्यूटर विज्ञान में, बड़े O नोटेशन का उपयोग अधिकांशतः एसिम्प्टोटिक ऊपरी और निचले सीमा # तंग सीमा का वर्णन करने के लिए कुछ अलग विधि से किया जा सकता है, जहां बड़े थीटा Θ नोटेशन का उपयोग किसी दिए गए संदर्भ में तथ्यात्मक रूप से अधिक उपयुक्त हो सकता है। उदाहरण के लिए, किसी फलन T(n) = 73n3+22n2 + 58 पर विचार करते समय, निम्नलिखित में से सभी सामान्यतः स्वीकार्य हैं, किन्तु कड़ी सीमाएं (जैसे नीचे संख्या 2 और 3) सामान्यतः सरल सीमाओं (जैसे नीचे संख्या 1) की तुलना में दृढ़ता से पसंद की जाती हैं।
T(n) = O(n100)
T(n) = O(n3)
T(n) = Θ(n3)
समतुल्य अंग्रेजी कथन क्रमशः हैं:
T(n) बिना किसी लक्षण के n100 से अधिक तेजी से बढ़ता है
T(n) बिना किसी लक्षण के n3 से अधिक तेजी से बढ़ता है
T(n) n3 जितनी तेजी से लक्षणहीन रूप से बढ़ता है.
इसलिए जबकि तीनों कथन सत्य हैं, प्रत्येक में उत्तरोत्तर अधिक जानकारी समाहित है। चूँकि, कुछ क्षेत्रों में, बड़े O नोटेशन (उपरोक्त सूचियों में नंबर 2) का उपयोग बड़े थीटा नोटेशन (उपरोक्त सूचियों में आइटम नंबर 3) की तुलना में अधिक सामान्यतः किया जाएगा। उदाहरण के लिए, यदि टी (n) इनपुट आकार n के लिए नए विकसित एल्गोरिदम के चलने के समय का प्रतिनिधित्व करता है, तो एल्गोरिदम के आविष्कारक और उपयोगकर्ता ऊपरी एसिम्प्टोटिक बाउंड लगाने के इच्छुक हो सकते हैं कि इसे चलाने में कितना समय लगेगा। निचली स्पर्शोन्मुख सीमा के बारे में स्पष्ट कथन।
अन्य संकेतन
अपनी पुस्तक एल्गोरिदम का परिचय में, थॉमस एच. कॉर्मेन, चार्ल्स ई. लेइसर्सन, रोनाल्ड एल. रिवेस्ट और क्लिफोर्ड स्टीन ने फलन के सेट पर विचार किया है जो संतुष्ट करता है
उदाहरण के लिए, सही संकेतन में इस सेट को O(g) कहा जा सकता है, जहाँ
[30]
लेखकों का कहना है कि सेट सदस्यता ऑपरेटर (∈) के अतिरिक्त सेट सदस्यता को दर्शाने के लिए समानता ऑपरेटर (=) का उपयोग नोटेशन का दुरुपयोग है, किन्तु ऐसा करने के लाभ हैं।[6] किसी समीकरण या असमानता के अंदर, एसिम्प्टोटिक नोटेशन का उपयोग सेटO (जी) में अज्ञात फलन के लिए होता है, जो निम्न-क्रम वाले शब्दों को समाप्त करता है, और समीकरणों में अनावश्यक अव्यवस्था को कम करने में मदद करता है, उदाहरण के लिए:[31]
बाचमैन-लैंडौ नोटेशन का विस्तार
कंप्यूटर विज्ञान में कभी-कभी उपयोग किया जाने वाला अन्य संकेतन Õ (सॉफ्ट-ओ पढ़ें) है, जो पॉलीलॉगरिदमिक कारकों को छुपाता है। उपयोग में दो परिभाषाएँ हैं: कुछ लेखक f(n)=Õ(g(n)) को आशुलिपि के रूप में उपयोग करते हैं f(n) = O(g(n) logkn) कुछ k के लिए, जबकि अन्य इसे शॉर्टहैंड के रूप में उपयोग करते हैं f(n) = O(g(n) logkg(n)).[32] कब g(n) n में बहुपद है, कोई अंतर नहीं है;चूँकि, बाद वाली परिभाषा किसी को यह कहने की अनुमति देती है, उदाहरण के लिए वह जबकि पूर्व परिभाषा इसकी अनुमति देती है किसी स्थिरांक k के लिए। कुछ लेखकO लिखते हैं*बाद वाली परिभाषा के समान उद्देश्य के लिए।[33] अनिवार्य रूप से, यह बड़ा O नोटेशन है, पॉलीलॉगरिदमिक फलन को अनदेखा कर रहा है क्योंकि एसिम्प्टोटिक विश्लेषण | कुछ अन्य सुपर-लघुगणकीय फलन के विकास-दर प्रभाव बड़े आकार के इनपुट मापदंड के लिए विकास-दर विस्फोट का संकेत देते हैं जो खराब रन-टाइम प्रदर्शन की पूर्वानुमान करने के लिए अधिक महत्वपूर्ण है लघुगणक-विकास कारक (ओं) द्वारा योगदान किए गए उत्तम-बिंदु प्रभावों की तुलना में। इस संकेतन का उपयोग अधिकांशतः विकास-दर के अन्दर होने वाली खामियों को दूर करने के लिए किया जाता है, जिन्हें वर्तमान स्थितियों के लिए बहुत कसकर बांधा गया है (लॉग के बाद से) किसी भी स्थिरांक k और किसी के लिए ε > 0).
इसके अतिरिक्त एल-नोटेशन, के रूप में परिभाषित किया गया है
उन फलनों के लिए सुविधाजनक है जो समय जटिलता#बहुपद समय और समय जटिलता#घातीय समय के बीच हैं .
सामान्यीकरण और संबंधित उपयोग
किसी भी मानक वेक्टर स्थान में मान लेने वाले फलनों का सामान्यीकरण सीधा है (मानदंडों द्वारा निरपेक्ष मानों को प्रतिस्थापित करना), जहां एफ और जी को ही स्थान में अपने मान लेने की आवश्यकता नहीं है। किसी भी टोपोलॉजिकल समूह में मान लेने वाले फलनों का सामान्यीकरण भी संभव है
सीमित प्रक्रिया x → xo मनमाना फ़िल्टर आधार, अर्थात निर्देशित नेट (गणित) एफ और जी को प्रस्तुत करके भी सामान्यीकृत किया जा सकता है। O नोटेशन का उपयोग अधिक सामान्य स्थानों में यौगिक और भिन्नता को परिभाषित करने के लिए किया जा सकता है, और फलनों की (स्पर्शोन्मुख) समतुल्यता को भी परिभाषित करने के लिए किया जा सकता है,
जो कि तुल्यता संबंध है और संबंध f की तुलना में अधिक प्रतिबंधात्मक धारणा है, ऊपर से Θ(g) है। (यदि एफ और जी सकारात्मक वास्तविक मूल्य वाले फलन हैं तो यह लिम एफ/जी = 1 तक कम हो जाता है।) उदाहरण के लिए, 2x Θ(x) है, किन्तु 2x − xO(x) नहीं है।
इतिहास (बाचमन-लैंडौ, हार्डी, और विनोग्राडोव नोटेशन)
प्रतीक O को पहली बार संख्या सिद्धांतकार पॉल बैचमैन ने 1894 में अपनी पुस्तक एनालिटिशे ज़हलेनथियोरी (विश्लेषणात्मक संख्या सिद्धांत) के दूसरे खंड में प्रस्तुत किया था।[1] संख्या सिद्धांतकार एडमंड लैंडौ ने इसे अपनाया, और इस प्रकार 1909 में अंकन O को प्रस्तुत करने के लिए प्रेरित हुए;[2] इसलिए दोनों को अब लैंडौ प्रतीक कहा जाता है। इन नोटेशनों का उपयोग 1950 के दशक के समय स्पर्शोन्मुख विश्लेषण के लिए अनुप्रयुक्त गणित में किया गया था।[34]
प्रतीक (इस अर्थ मेंO का कोई कारण नहीं है) 1914 में हार्डी और लिटिलवुड द्वारा प्रस्तुत किया गया था।[19] हार्डी और लिटिलवुड ने भी 1916 में प्रतीकों की प्रारंभ की (दाएं) और ( बाएं ),[20] आधुनिक प्रतीकों के अग्रदूत (एक छोटे से O से छोटा नहीं है) और (के छोटे से से बड़ा नहीं है). इस प्रकार ओमेगा प्रतीकों (उनके मूल अर्थ के साथ) को कभी-कभी लैंडौ प्रतीकों के रूप में भी जाना जाता है। यह संकेतन कम से कम 1950 के दशक से संख्या सिद्धांत में इसका सामान्यतः उपयोग किया जाने लगा।[35]
1970 के दशक में बिगओको डोनाल्ड नुथ द्वारा कंप्यूटर विज्ञान में लोकप्रिय बनाया गया, जिन्होंने संबंधित थीटा नोटेशन की प्रारंभ की, और ओमेगा नोटेशन के लिए अलग परिभाषा प्रस्तावित की।[24]
लैंडौ ने कभी भी बड़े थीटा और छोटे ओमेगा प्रतीकों का उपयोग नहीं किया।
हार्डी के प्रतीक थे (आधुनिकO अंकन के संदर्भ में)
और
(चूँकि हार्डी ने कभी भी नोटेशन को परिभाषित या उपयोग नहीं किया , और न , जैसा कि कभी-कभी रिपोर्ट किया गया है)। हार्डी ने प्रतीकों का परिचय दिया और (साथ ही कुछ अन्य प्रतीकों) को उनके 1910 के ट्रैक्ट ऑर्डर्स ऑफ इन्फिनिटी में प्रकाशित किया गया था, और उनका उपयोग केवल तीन पत्रों (1910-1913) में किया गया था। अपने लगभग 400 शेष पत्रों और पुस्तकों में उन्होंने लगातार लैंडौ प्रतीकोंO औरO का उपयोग किया।
हार्डी के नोटेशन का अब उपयोग नहीं किया जाता है। दूसरी ओर, 1930 के दशक में,[36] रूसी संख्या सिद्धांतकार इवान मतवेयेविच विनोग्रादोव ने अपना अंकन प्रस्तुत किया , जिसका उपयोग संख्या सिद्धांत के अतिरिक्त तेजी से किया जा रहा है अंकन. अपने पास
और अधिकांशतः दोनों नोटेशन का उपयोग ही पेपर में किया जाता है।
बिग-ओ मूल रूप से ऑर्डर ऑफ (ऑर्डनंग, बैचमैन 1894) को दर्शाता है, और इस प्रकार यह लैटिन अक्षर है। न तो बैचमैन और न ही लैंडौ ने कभी इसे ऑमिक्रॉन कहा। इस प्रतीक को बहुत बाद में (1976) नुथ ने बड़े ओमीक्रॉन के रूप में देखा,[24]संभवतः प्रतीक ओमेगा की उनकी परिभाषा के संदर्भ में। अंक 0 का प्रयोग नहीं किया जाना चाहिए.
यह भी देखें
स्पर्शोन्मुख विस्तार: टेलर के सूत्र को सामान्य बनाने वाले फलनों का सन्निकटन
एसिम्प्टोटिक रूप से इष्टतम एल्गोरिदम: वाक्यांश जो अधिकांशतः एल्गोरिदम का वर्णन करने के लिए उपयोग किया जाता है जिसमें समस्या के लिए निचली सीमा के स्थिरांक के अन्दर एसिम्प्टोटिक रूप से ऊपरी सीमा होती है
↑Michael Sipser (1997). संगणना के सिद्धांत का परिचय. Boston/MA: PWS Publishing Co. Here: Def.7.2, p.227
↑ 6.06.1Cormen,Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. (2009). एल्गोरिदम का परिचय (3rd ed.). Cambridge/MA: MIT Press. p. 45. ISBN978-0-262-53305-8. Because θ(g(n)) is a set, we could write "f(n) ∈ θ(g(n))" to indicate that f(n) is a member of θ(g(n)). Instead, we will usually write f(n) = θ(g(n)) to express the same notion. You might be confused because we abuse equality in this way, but we shall see later in this section that doing so has its advantages.
↑Cormen, Thomas; Leiserson, Charles; Rivest, Ronald; Stein, Clifford (2009). एल्गोरिदम का परिचय (Third ed.). MIT. p. 53.
↑Donald E. Knuth, The art of computer programming. Vol. 1. Fundamental algorithms, third edition, Addison Wesley Longman, 1997. Section 1.2.11.1.
↑Ronald L. Graham, Donald E. Knuth, and Oren Patashnik, Concrete Mathematics: A Foundation for Computer Science (2nd ed.), Addison-Wesley, 1994. Section 9.2, p. 443.
↑Sivaram Ambikasaran and Eric Darve, An Fast Direct Solver for Partial Hierarchically Semi-Separable Matrices, J. Scientific Computing57 (2013), no. 3, 477–501.
↑Saket Saurabh and Meirav Zehavi, -Max-Cut: An -Time Algorithm and a Polynomial Kernel, Algorithmica80 (2018), no. 12, 3844–3860.
↑ 20.020.1G. H. Hardy and J. E. Littlewood, « Contribution to the theory of the Riemann zeta-function and the theory of the distribution of primes », Acta Mathematica, vol. 41, 1916.
↑E. Landau, "Über die Anzahl der Gitterpunkte in gewissen Bereichen. IV." Nachr. Gesell. Wiss. Gött. Math-phys. Kl. 1924, 137–150.
↑ 22.022.1Aleksandar Ivić. The Riemann zeta-function, chapter 9. John Wiley & Sons 1985.
↑Gérald Tenenbaum, Introduction to analytic and probabilistic number theory, Chapter I.5. American Mathematical Society, Providence RI, 2015.
↑Cucker, Felipe; Bürgisser, Peter (2013). "A.1 Big Oh, Little Oh, and Other Comparisons". Condition: The Geometry of Numerical Algorithms. Berlin, Heidelberg: Springer. pp. 467–468. doi:10.1007/978-3-642-38896-5. ISBN978-3-642-38896-5.
↑for example it is omitted in: Hildebrand, A.J. "Asymptotic Notations"(PDF). Department of Mathematics. Asymptotic Methods in Analysis. Math 595, Fall 2009. Urbana, IL: University of Illinois. Archived(PDF) from the original on 14 March 2017. Retrieved 14 March 2017.
↑Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. (2009). एल्गोरिदम का परिचय (3rd ed.). Cambridge/MA: MIT Press. p. 47. ISBN978-0-262-53305-8. When we have only an asymptotic upper bound, we use O-notation. For a given function g(n), we denote by O(g(n)) (pronounced "big-oh of g of n" or sometimes just "oh of g of n") the set of functions O(g(n)) = { f(n) : there exist positive constants c and n0 such that 0 ≤ f(n) ≤ cg(n) for all n ≥ n0}
↑Cormen,Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. (2009). एल्गोरिदम का परिचय (3rd ed.). Cambridge/MA: MIT Press. p. 49. ISBN978-0-262-53305-8. When the asymptotic notation stands alone (that is, not within a larger formula) on the right-hand side of an equation (or inequality), as in n = O(n2), we have already defined the equal sign to mean set membership: n ∈ O(n2). In general, however, when asymptotic notation appears in a formula, we interpret it as standing for some anonymous function that we do not care to name. For example, the formula 2n2 + 3n + 1 = 2n2 + θ(n) means that 2n2 + 3n + 1 = 2n2 + f(n), where f(n) is some function in the set θ(n). In this case, we let f(n) = 3n + 1, which is indeed in θ(n). Using asymptotic notation in this manner can help eliminate inessential detail and clutter in an equation.
↑Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2022). एल्गोरिदम का परिचय (4th ed.). Cambridge, Mass.: The MIT Press. pp. 74–75. ISBN9780262046305.
↑E. C. Titchmarsh, The Theory of the Riemann Zeta-Function (Oxford; Clarendon Press, 1951)
↑See for instance "A new estimate for G(n) in Waring's problem" (Russian). Doklady Akademii Nauk SSSR 5, No 5-6 (1934), 249–253. Translated in English in: Selected works / Ivan Matveevič Vinogradov; prepared by the Steklov Mathematical Institute of the Academy of Sciences of the USSR on the occasion of his 90th birthday. Springer-Verlag, 1985.
Knuth, Donald (1997). "1.2.11: Asymptotic Representations". Fundamental Algorithms. The Art of Computer Programming. Vol. 1 (3rd ed.). Addison-Wesley. ISBN978-0-201-89683-1.
Black, Paul E. (11 March 2005). Black, Paul E. (ed.). "big-O notation". Dictionary of Algorithms and Data Structures. U.S. National Institute of Standards and Technology. Retrieved December 16, 2006.
Black, Paul E. (17 December 2004). Black, Paul E. (ed.). "little-o notation". Dictionary of Algorithms and Data Structures. U.S. National Institute of Standards and Technology. Retrieved December 16, 2006.
Black, Paul E. (17 December 2004). Black, Paul E. (ed.). "Ω". Dictionary of Algorithms and Data Structures. U.S. National Institute of Standards and Technology. Retrieved December 16, 2006.
Black, Paul E. (17 December 2004). Black, Paul E. (ed.). "ω". Dictionary of Algorithms and Data Structures. U.S. National Institute of Standards and Technology. Retrieved December 16, 2006.
Black, Paul E. (17 December 2004). Black, Paul E. (ed.). "Θ". Dictionary of Algorithms and Data Structures. U.S. National Institute of Standards and Technology. Retrieved December 16, 2006.