हाय! आजचा धडा बाकीच्यांपेक्षा थोडा वेगळा असेल. ते फक्त अप्रत्यक्षपणे Java शी संबंधित आहे यात फरक असेल. ते म्हणाले, हा विषय प्रत्येक प्रोग्रामरसाठी खूप महत्वाचा आहे. आपण अल्गोरिदम बद्दल बोलणार आहोत . अल्गोरिदम म्हणजे काय? सोप्या भाषेत, हा काही क्रियांचा क्रम आहे जो इच्छित परिणाम प्राप्त करण्यासाठी पूर्ण करणे आवश्यक आहे . दैनंदिन जीवनात आपण अल्गोरिदम वापरतो. उदाहरणार्थ, दररोज सकाळी तुमच्याकडे एक विशिष्ट कार्य आहे: शाळेत किंवा कामावर जा आणि त्याच वेळी:
- कपडे घातले
- स्वच्छ
- फेड
- अलार्म घड्याळ वापरून जागे व्हा.
- शॉवर घ्या आणि स्वत: ला धुवा.
- नाश्ता आणि कॉफी किंवा चहा बनवा.
- खा.
- जर तुम्ही आदल्या संध्याकाळी तुमचे कपडे इस्त्री केले नाहीत तर ते इस्त्री करा.
- कपडे घाल.
- घर सोड.
- Webster's Third New International Dictionary ची 1961 ची आवृत्ती विकत घ्या किंवा डाउनलोड करा.
- या शब्दकोशात आमच्या यादीतील प्रत्येक नाव शोधा.
- कागदाच्या तुकड्यावर, नाव असलेल्या शब्दकोशाचे पृष्ठ लिहा.
- नावांची क्रमवारी लावण्यासाठी कागदाचे तुकडे वापरा.
for
लूप लिहा जे हे कार्य करते
int[] numbers = new int[100];
// ...fill the array with numbers
for (int i: numbers) {
System.out.println(i);
}
या अल्गोरिदमची जटिलता काय आहे? रेखीय, म्हणजे O(n). प्रोग्रामने केलेल्या क्रियांची संख्या त्यावर किती संख्या पास केली जाते यावर अवलंबून असते. अॅरेमध्ये 100 संख्या असल्यास, 100 क्रिया असतील (स्क्रीनवर स्ट्रिंग प्रदर्शित करण्यासाठी विधाने). अॅरेमध्ये 10,000 संख्या असल्यास, 10,000 क्रिया केल्या पाहिजेत. आमचे अल्गोरिदम कोणत्याही प्रकारे सुधारले जाऊ शकते? नाही. काहीही असले तरी, कन्सोलवर स्ट्रिंग्स प्रदर्शित करण्यासाठी आपल्याला अॅरेमधून N पास करावे लागतील आणि N विधाने कार्यान्वित करावी लागतील. आणखी एक उदाहरण विचारात घ्या.
public static void main(String[] args) {
LinkedList<Integer> numbers = new LinkedList<>();
numbers.add(0, 20202);
numbers.add(0, 123);
numbers.add(0, 8283);
}
आमच्याकडे एक रिक्त आहे LinkedList
ज्यामध्ये आम्ही अनेक संख्या समाविष्ट करतो. आम्हाला आमच्या उदाहरणात एकच संख्या घालण्याच्या अल्गोरिदमिक जटिलतेचे मूल्यांकन करणे आवश्यक आहे LinkedList
आणि ते सूचीमधील घटकांच्या संख्येवर कसे अवलंबून आहे. उत्तर आहे O(1), म्हणजे स्थिर जटिलता . का? लक्षात ठेवा की आम्ही प्रत्येक क्रमांक सूचीच्या सुरुवातीला समाविष्ट करतो. या व्यतिरिक्त, तुम्हाला आठवत असेल की जेव्हा तुम्ही a मध्ये संख्या टाकता तेव्हा LinkedList
घटक कुठेही हलत नाहीत. दुवे (किंवा संदर्भ) अद्यतनित केले जातात (आपण LinkedList कसे कार्य करते हे विसरल्यास, आमच्या जुन्या धड्यांपैकी एक पहा ). जर आमच्या यादीतील पहिला क्रमांक x
, आणि आम्ही सूचीच्या समोर y क्रमांक टाकला, तर आम्हाला हे करणे आवश्यक आहे:
x.previous = y;
y.previous = null;
y.next = x;
जेव्हा आम्ही दुवे अद्यतनित करतो, तेव्हा आम्ही एक किंवा एक अब्ज, मध्ये आधीच किती संख्या आहेत याची आम्हाला पर्वा नाही . LinkedList
अल्गोरिदमची जटिलता स्थिर आहे, म्हणजे O(1).
GO TO FULL VERSION