अल्गोरिथम जटिलता प्रामुख्याने दोन संसाधनांना संबोधित करते:
वेळ
(अंमलबजावणीचा कालावधी) आणि
जागा
(स्मृतीचा वापर). वेळेची जटिलता इनपुट आकारासह रनटाइम कसा वाढतो हे मोजते (
एन
), अवकाश जटिलता मेमरीच्या वापराचे मूल्यांकन करते. उदाहरणार्थ:
- एक अल्गोरिदम सह
ओ(एन)
वेळेची जटिलता इनपुट आकारासह रेषीयपणे मोजली जाते.
- एक अल्गोरिदम सह
O(1)
इनपुट आकाराकडे दुर्लक्ष करून स्पेस कॉम्प्लेक्सिटी स्थिर मेमरी वापरते.
दोन्ही मापदंड आवश्यक आहेत. जलद अल्गोरिथम मोठ्या डेटासेटवरील मेमरी संपवू शकते, तर मेमरी-कार्यक्षम अल्गोरिथम रिअल-टाइम अनुप्रयोगांसाठी खूप मंद असू शकते.
कार्यक्षमता व्यवहार्यता ठरवते. १० दशलक्ष विरुद्ध १० वस्तूंची यादी क्रमवारी लावण्याचा विचार करा.:
- A
बबल सॉर्ट
(
ओ(एन)
) लहान डेटासेटसाठी पुरेसे असू शकते परंतु मोठ्या डेटासेटसाठी अव्यवहार्य ठरते.
- A
मर्ज सॉर्ट
(
ओ(एन लॉग एन)
) मोठे डेटासेट सुंदरपणे हाताळते परंतु अतिरिक्त मेमरी आवश्यक असते.
जटिलता विश्लेषण अल्गोरिदमची तुलना करण्यासाठी एक सार्वत्रिक भाषा प्रदान करते, हार्डवेअर-विशिष्ट तपशीलांचे सारांश काढते. हे विकासकांना स्केलेबिलिटीचा अंदाज घेण्यास आणि गंभीर प्रणालींमधील अडथळे टाळण्यास सक्षम करते.
असिम्प्टोटिक नोटेशन्स फंक्शन्सच्या मर्यादित वर्तनाचे वर्णन करतात, जटिलतेसाठी लघुलेख देतात. तीन प्राथमिक संकेत आहेत:
बिग ओ नोटेशन अल्गोरिथमला लागणारा जास्तीत जास्त वेळ किंवा जागा परिभाषित करते. उदाहरणार्थ:
-
O(1)
: स्थिर वेळ (उदा., निर्देशांकानुसार अॅरे घटकात प्रवेश करणे).
-
ओ(एन)
: रेषीय वेळ (उदा., यादीतून पुनरावृत्ती).
-
ओ(एन)
: चतुर्भुज वेळ (उदा., बबल सॉर्टमध्ये नेस्टेड लूप).
बिग ओ हे सर्वात जास्त वापरले जाणारे मेट्रिक आहे, कारण ते कामगिरीच्या मर्यादेची हमी देते.
ओमेगा आवश्यक असलेल्या किमान वेळेचे वर्णन करते. उदाहरणार्थ:
- एका रेषीय शोधात आहे
(1)
जर लक्ष्य हा पहिला घटक असेल तर.
आशावादी असले तरी, सर्वात वाईट परिस्थितीच्या नियोजनासाठी सर्वोत्तम परिस्थितीचे विश्लेषण कमी माहितीपूर्ण असते.
थीटा बिग ओ आणि ओमेगा एकत्र करते, जे अचूक असिम्प्टोटिक वर्तन दर्शवते. जर अल्गोरिदम सर्वोत्तम आणि सर्वात वाईट केसेस समान असतील तर:
-
(एन लॉग एन)
सरासरी आणि सर्वात वाईट परिस्थितींमध्ये मर्ज सॉर्टसाठी लागू होते.
या नोटेशन्स वाढीच्या दरांवर लक्ष केंद्रित करून, दूरस्थ स्थिरांक आणि खालच्या-क्रमातील पदांचे सारांश देतात. उदाहरणार्थ, २न + ३न + 4 सोपे करते ओ(एन) कारण वर्गाकार पद मोठ्या संख्येसाठी प्रबळ आहे एन .
कॉम्प्लेक्सिटी क्लासेस समजून घेतल्याने स्केलेबिलिटीनुसार अल्गोरिदमचे वर्गीकरण करण्यास मदत होते. येथे सर्वात जास्त ते कमीत कमी कार्यक्षम अशी पदानुक्रम आहे.:
अंमलबजावणीचा वेळ किंवा मेमरी अपरिवर्तित राहते कारण
एन
वाढते.
-
उदाहरण
: की द्वारे हॅश टेबल मूल्य अॅक्सेस करणे.
रनटाइम लॉगरिथमिक पद्धतीने वाढतो
एन
.
-
उदाहरण
: बायनरी शोध प्रत्येक पुनरावृत्तीमध्ये इनपुट स्पेस अर्धी करतो.
रनटाइम प्रमाणानुसार मोजला जातो
एन
.
-
उदाहरण
: क्रमवारी न लावलेल्या यादीद्वारे रेषीय शोध.
विभाजित करा आणि जिंका अल्गोरिदममध्ये सामान्य.
-
उदाहरण
: सॉर्ट आणि हीप सॉर्ट मर्ज करा.
नेस्टेड पुनरावृत्तीमुळे स्फोटक वाढ होते.
-
उदाहरण
: बबल सॉर्ट आणि सिलेक्शन सॉर्ट.
प्रत्येक अतिरिक्त इनपुटसह रनटाइम दुप्पट होतो.
-
उदाहरण
: मेमोइझेशनशिवाय रिकर्सिव्ह फिबोनाची गणना.
क्रमपरिवर्तन-आधारित अल्गोरिदम.
-
उदाहरण
: क्रूर शक्ती वापरून प्रवासी सेल्समनची समस्या सोडवणे.
यातील फरक ओ(एन लॉग एन) आणि ओ(एन) साठी तीव्र होते एन = 10 : पहिले मिलिसेकंदात कार्यान्वित होऊ शकते, तर दुसरे काही दिवस लागू शकतात.
इनपुट कॉन्फिगरेशनवर आधारित अल्गोरिदम वेगळ्या पद्धतीने कार्य करतात. सर्व प्रकरणांचे विश्लेषण केल्याने मजबूती मिळते:
डेटाबेस क्वेरी ऑप्टिमायझर हॅश जॉइनमधून निवडू शकतो ( ओ(एन + मी) ) आणि नेस्टेड लूप जॉइन ( ओ(एनएम) ) डेटा वितरणावर आधारित. सुरक्षिततेच्या दृष्टीने महत्त्वाच्या प्रणालींसाठी (उदा. विमानचालन सॉफ्टवेअर) सर्वात वाईट परिस्थितीचे विश्लेषण अत्यंत महत्त्वाचे असते, जिथे अनिश्चितता अस्वीकार्य असते.
वेगवेगळ्या अल्गोरिदम वापरून समान समस्या सोडवता येते. उदाहरणार्थ, मूल्यांच्या यादीमध्ये लक्ष्य मूल्य शोधण्याची समस्या वेगवेगळ्या अल्गोरिदम वापरून सोडवता येते, जसे की रेषीय शोध, बायनरी शोध किंवा हॅश टेबल शोध.
खालील तक्त्यामध्ये लक्ष्य मूल्य शोधण्यासाठी या अल्गोरिदमच्या वेळ आणि अवकाश गुंतागुंतीची तुलना केली आहे. एन मूल्ये.
अल्गोरिथमची निवड समस्येचा आकार, इनपुट वैशिष्ट्ये आणि उपलब्ध संसाधनांवर अवलंबून असते. उदाहरणार्थ, जर यादी लहान आणि क्रमवारी न लावलेली असेल, तर रेषीय शोध हा सर्वोत्तम पर्याय असू शकतो. जर यादी मोठी आणि क्रमवारीत असेल तर बायनरी शोध हा सर्वोत्तम पर्याय असू शकतो. जर यादी मोठी आणि क्रमवारी न लावलेली असेल, तर हॅश टेबल शोध हा सर्वोत्तम पर्याय असू शकतो.
परिशोधित विश्लेषण ऑपरेशन्सच्या क्रमानुसार सरासरी वेळ काढते.
-
उदाहरण
: डायनॅमिक अॅरे पूर्ण भरल्यावर क्षमता दुप्पट करतात. एकच असताना
ढकलणे
ऑपरेशन लागू शकते
ओ(एन)
वेळ, परिशोधित किंमत राहते
O(1)
.
अल्गोरिदम जसे की
मोंटे कार्लो
आणि
लास वेगास
कार्यक्षमतेसाठी यादृच्छिकता वापरा.
-
उदाहरण
: मिलर-रॅबिन प्राथमिकता चाचणीमध्ये संभाव्यता हमी असते परंतु ती निर्धारक पद्धतींपेक्षा वेगवान असते.
काही समस्या (उदा., बुलियन समाधानक्षमता) आहेत एनपी-पूर्ण , म्हणजे कोणतेही ज्ञात बहुपद-काळ समाधान अस्तित्वात नाही. रिडक्शनद्वारे NP-पूर्णता सिद्ध केल्याने संगणकीय कडकपणाचे वर्गीकरण करण्यास मदत होते.
एक ओ(एन) क्लस्टरिंग अल्गोरिथम मोठ्या डेटासेटसाठी एक अडथळा बनू शकतो, ज्यामुळे केडी ट्रीज सारख्या अंदाजे पद्धतींमध्ये बदल होऊ शकतो ( ओ(एन लॉग एन) ).
सार्वजनिक-की प्रणाली कठोरतेवर अवलंबून असतात O(2) हल्ल्यांना प्रतिकार करण्यासाठी समस्या (उदा. पूर्णांक घटकीकरण).
रिअल-टाइम रेंडरिंग इंजिन प्राधान्य देतात O(1) ६०+ FPS राखण्यासाठी भौतिकशास्त्र सिम्युलेशनसाठी अल्गोरिदम.
तडजोड महत्त्वाची आहे:
-
वेळ विरुद्ध जागा
: हॅश मॅप्स वापरा (
O(1)
मेमरीच्या किंमतीवर लुकअप्स).
-
साधेपणा विरुद्ध. अनुकूलता
: समाविष्ट क्रमवारी (
ओ(एन)
) लहान, जवळजवळ क्रमवारी लावलेल्या डेटासेटसाठी श्रेयस्कर असू शकते.
रिकर्सिव्ह अल्गोरिदमसाठी, रिकरन्स रिलेशनशिप मॉडेल रनटाइम. उदाहरणार्थ, मर्ज पुनरावृत्ती प्रकार करते:
[ T(n) = 2T(n/2) + O(n) ] हे ठरवते की
ओ(एन लॉग एन)
द्वारे
मास्टर प्रमेय
.
अनुभवजन्य चाचणी सैद्धांतिक विश्लेषणाला पूरक असते. प्रोफाइलिंग टूल्स (उदा., व्हॅलग्रिंड, परफ) वास्तविक जगातील अडथळे उघड करतात.
अजगर
def रेषीय_सम(एआरआर):
एकूण = 0
arr मध्ये संख्या साठी:
एकूण += संख्या
एकूण परतावा
def quadratic_sum(arr):
एकूण = 0
मी अरेरे:
j साठी arr मध्ये:
एकूण += i * j
एकूण परतावा
तर ओ(एन) स्थिरांकांचे सारांश काढतो, a 100एन अल्गोरिथम कदाचित a पेक्षा हळू असू शकेल 0.01एन व्यावहारिकतेसाठी अल्गोरिदम एन .
एक ओ(एन लॉग एन) अल्गोरिथम कदाचित कमी कामगिरी करू शकेल ओ(एन) साठी एन = 10 ओव्हरहेडमुळे.
लक्षात ठेवलेले फिबोनाची फंक्शन ( ओ(एन) स्पेस) मोठ्या इनपुटवर क्रॅश होऊ शकते, पुनरावृत्ती आवृत्तीच्या विपरीत ( O(1) जागा).
एक स्व-संतुलित BST ( ओ(लॉग एन) शोध) नियमित BST पेक्षा सुरक्षित आहे ( ओ(एन) सर्वात वाईट परिस्थितीत) अविश्वसनीय डेटासाठी.
अल्गोरिथम जटिलता विश्लेषण हे संगणकीय कार्यक्षमतेच्या विशाल परिदृश्यातून विकासकांना मार्गदर्शन करणारे कंपास आहे. MTSC7196 च्या विद्यार्थ्यांसाठी, या विषयात प्रभुत्व मिळवणे सैद्धांतिक ज्ञान आणि व्यावहारिक कौशल्यांना जोडते. वेळ आणि जागेच्या आवश्यकतांचे विश्लेषण करून, लक्षणांशिवायच्या सीमांची तुलना करून आणि वास्तविक-जगातील व्यापार-विवादांना नेव्हिगेट करून, विकासक अशा प्रणाली तयार करू शकतात ज्या सुंदरपणे स्केल करतात आणि विश्वासार्हपणे कामगिरी करतात.
डेटा-चालित नवोपक्रमाने परिभाषित केलेल्या युगात, दरम्यान फरक करण्याची क्षमता ओ(एन लॉग एन) आणि एक ओ(एन) उपाय फक्त शैक्षणिक नाही तर तो एक धोरणात्मक अत्यावश्यकता आहे. तुम्ही तुमच्या अभ्यासात प्रगती करत असताना, लक्षात ठेवा: जटिलता विश्लेषण हे केवळ संख्या आणि चिन्हांबद्दल नाही. हे गणनेच्या हृदयाचे ठोके समजून घेण्याबद्दल आहे.
२०१ Since पासून, भेट यू दागिन्यांची स्थापना चीन, दागदागिने उत्पादन बेस ग्वांगझोऊ येथे झाली. आम्ही डिझाइन, उत्पादन आणि विक्री एकत्रित करणारे दागिने एंटरप्राइझ आहोत.
+86-19924726359/+86-13431083798
मजला 13, वेस्ट टॉवर ऑफ गोम स्मार्ट सिटी, नाही. 33 जक्सिन स्ट्रीट, हैजू जिल्हा, गुआंगझो, चीन.