नमस्ते! आज का पाठ बाकियों से थोड़ा अलग होगा। यह अलग होगा कि यह केवल अप्रत्यक्ष रूप से जावा से संबंधित है। उस ने कहा, यह विषय हर प्रोग्रामर के लिए बहुत महत्वपूर्ण है। हम एल्गोरिदम के बारे में बात करने जा रहे हैं । एक एल्गोरिदम क्या है? सरल शब्दों में, यह क्रियाओं का कुछ क्रम है जिसे वांछित परिणाम प्राप्त करने के लिए पूरा किया जाना चाहिए । हम रोजमर्रा की जिंदगी में अक्सर एल्गोरिदम का इस्तेमाल करते हैं। उदाहरण के लिए, हर सुबह आपके पास एक विशिष्ट कार्य होता है: स्कूल या काम पर जाना, और उसी समय:
- पहने
- साफ़
- सिंचित
- अलार्म घड़ी का उपयोग करके जागें।
- स्नान करो और अपने आप को धो लो।
- नाश्ता और कुछ कॉफी या चाय बनाओ।
- खाना।
- यदि आपने पिछली शाम को अपने कपड़ों को प्रेस नहीं किया है, तो उन्हें आयरन करें।
- कपड़े पहनो।
- घर छोड़ें।
- वेबस्टर्स थर्ड न्यू इंटरनेशनल डिक्शनरी का 1961 संस्करण खरीदें या डाउनलोड करें।
- इस शब्दकोश में हमारी सूची से हर नाम खोजें।
- कागज के एक टुकड़े पर, शब्दकोश का वह पृष्ठ लिखें जिस पर नाम स्थित है।
- नामों को क्रमबद्ध करने के लिए कागज के टुकड़ों का प्रयोग करें।
for
लूप लिखते हैं जो इस कार्य को करता है
int[] numbers = new int[100];
// ...fill the array with numbers
for (int i: numbers) {
System.out.println(i);
}
इस एल्गोरिदम की जटिलता क्या है? रैखिक, यानी ओ (एन)। प्रोग्राम द्वारा निष्पादित की जाने वाली कार्रवाइयों की संख्या इस बात पर निर्भर करती है कि उसे कितनी संख्याएँ दी गई हैं। यदि सरणी में 100 संख्याएँ हैं, तो 100 क्रियाएँ होंगी (स्क्रीन पर तार प्रदर्शित करने के लिए कथन)। यदि सरणी में 10,000 संख्याएँ हैं, तो 10,000 क्रियाएँ अवश्य की जानी चाहिए। क्या हमारे एल्गोरिदम को किसी भी तरह से सुधारा जा सकता है? नहीं। कोई बात नहीं, हमें कंसोल पर स्ट्रिंग प्रदर्शित करने के लिए एन को एरे से गुजरना होगा और एन स्टेटमेंट को निष्पादित करना होगा। एक और उदाहरण पर गौर कीजिए।
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
, तो तत्व कहीं नहीं जाते हैं। लिंक (या संदर्भ) अपडेट किए गए हैं (यदि आप भूल गए हैं कि लिंक्डलिस्ट कैसे काम करता है, तो हमारे पुराने पाठों में से एक को देखें )। यदि हमारी सूची में पहला नंबर है x
, और हम सूची के सामने नंबर y डालते हैं, तो हमें बस इतना करना है:
x.previous = y;
y.previous = null;
y.next = x;
जब हम लिंक्स को अपडेट करते हैं, तो हम इस बात की परवाह नहीं करते हैं कि पहले से कितनी संख्याएँ हैंLinkedList
, चाहे एक अरब या एक अरब। एल्गोरिथम की जटिलता स्थिर है, अर्थात O(1)।
GO TO FULL VERSION