Transcript for:
Introduction to Arrays in DSA

हाय एवरीवन एंड वेलकम टू द कंप्लीट डीएसए सीरीज जिसके अंदर आज हम करने वाले हैं अपना नेक्स्ट चैप्टर व्हिच विल बी रिगार्डिंग एरीज अब डीएसए कांसेप्ट में अगर इसके अलावा आपको कोई और भी टॉपिक पढ़ना है तो इसी चैनल के ऊपर इस प्लेलिस्ट के अंदर हमें अवेलेबल मिल जाएगा हम चाहे तो यहां से जाकर भी पढ़ सकते हैं नाउ व्हेन वी टॉक अबाउट अरेज इट इज बेसिकली द फर्स्ट डेटा स्ट्रक्चर दैट वी आर गोइंग टू स्टडी तो जब हम डेटा स्ट्रक्चर्स एंड एल्गोरिथम्स को पढ़ने वाले हैं तो सबसे पहले जान लेते हैं व्हाट एगजैक्टली आर डाटा स्ट्रक्चर्स एंड एल्गोरिथम तो व्हेन वी टॉक अबाउट डेटा स्ट्रक्चर्स डेटा स्ट्रक्चर्स आर बेसिकली स्ट्रक्चर्स इन आवर कोड व्हेन वी आर प्रोग्रामिंग व्हिच आर यूज्ड टू स्टोर डाटा हम जो कोडिंग प्रोग्रामिंग सारी चीजें सीख रहे हैं इसके पीछे का एक ही मोटिव है दैट वी विल बी एबल टू बिल्ड रियल लाइफ सिस्टम्स वन डे और जब भी हम रियल लाइफ सिस्टम्स की बात करते हैं जैसे हमारी वेबसाइट्स हो गई हमारे एप्स हो गए हमारे सॉफ्टवेयर्स हो गए हर कोई जो सिस्टम होता है इट इज रन ऑन डाटा डेटा इज द फ्यूल फॉर डेवलपमेंट फॉर कोडिंग फॉर प्रोग्रामिंग तो डेटा को हैंडल करना हमें आना चाहिए तो बेसिकली कोडिंग के अंदर प्रोग्रामिंग करते हुए c+ प का कोड लिखते हुए अगर हमें किसी तरीके की बहुत सारी इंफॉर्मेशन स्टोर करानी होती है तो हम उसे स्टोर कराते हैं इन द फॉर्म ऑफ डिफरेंट डिफरेंट डाटा स्ट्रक्चर्स और यह डेटा अलग-अलग कैटेगरी का हो सकता है कुछ डाटा हो सकता है लीनियर हो जिसे एक सिंगल लाइन की फॉर्म में इमेजिन किया जा सकता है कुछ डाटा हो सकता है हायरा कियल हो हायरा कियल कहने का मतलब है इस तरीके की उस डाटा के अंदर हायरा की जो है वो फॉर्म होती है तो अलग-अलग टाइप का जो डाटा होता है उसे हम अलग-अलग डाटा स्ट्रक्चर्स के अंदर स्टोर कराते हैं तो धीरे-धीरे थ्रू आउट द सीरीज वी आर गोइंग टू डिस्कवर अ लॉट ऑफ डिफरेंट टाइप्स ऑफ डाटा एंड आल्सो डिफरेंट टाइप्स ऑफ डाटा स्ट्रक्चर्स इसके साथ में एक और वर्ड है जो मैं बार-बार सुनने को मिलेगा व्हिच इज एल्गोरिथम्स एल्गोरिथम्स बेसिकली डेटा के ऊपर ऑपरेशंस एफिशिएंट ऑपरेशन फॉर्म करने के तरीके होते हैं जैसे फॉर एग्जांपल किसी डेटा स्ट्रक्चर से अगर हम डेटा को फाइंड आउट करना चाहते हैं सर्च करना चाहते हैं उसके अंदर डाटा तो सर्च करने का जो प्रोसेस होगा उसको हम एल्गोरिदम कह सकते हैं अगर उस डाटा को हम सॉर्ट करना चाहते हैं यानी उसे असेंडिंग या डिसेंडिंग ऑर्डर में अरेंज करना चाहते हैं तो उसके लिए हमारे पास अलग एल्गोरिथम्स होंगी तो इसी तरीके से डटा के ऊपर जो हम डिफरेंट डिफरेंट ऑपरेशंस परफॉर्म करते हैं इन्हीं ऑपरेशंस को वी कॉल आवर एल्गोरिथम्स और थ्रू आउट दिस सीरीज वीी आर गोइंग टू स्टडी अ लॉट ऑफ डिफरेंट डेटा स्ट्रक्चर्स एंड एल्गोरिथम्स तो सबसे पहले लेट्स टॉक अबाउट व्हाट एन एरे इज जब भी हमें कोड के अंदर लेट्स सपोज हमें पांच स्टूडेंट्स के मार्क्स स्टोर कराने हैं तो इन मार्क्स को अभी एजिस्टिफाई हमारा मार्क्स टू वेरिएबल हो जाएगा यह हमारा मार्क्स थ्री वेरिएबल हो जाएगा एंड सिमिलरली वी आर गोइंग टू क्रिएट फाइव डिफरेंट वेरिएबल दैट आर गोइंग टू स्टोर मार्क्स ऑफ फाइव स्टूडेंट्स पर कल को सिचुएशन यह भी आ सकती है कि हमारी क्लास के अंदर फाइव स्टूडेंट्स नहीं है हमारी क्लास के अंदर 100 स्टूडेंट्स हैं तो क्या 100 स्टूडेंट्स के मार्क्स स्टोर कराने के लिए वी आर गोइंग टू क्रिएट 100 डिफरेंट वेरिएबल अब ये 100 डिफरेंट वेरिएबल हम क्रिएट तो कर दें पर इसमें दो प्रॉब्लम्स हैं सबसे पहला इट्स गोइंग टू बी वेरी हेक्टिक फॉर अ प्रोग्रामर टू क्रिएट 100 डिफरेंट वेरिएबल एंड सेकंड इट्स गोइंग टू बी वेरी डिफिकल्ट टू ट्रैक 100 डिफरेंट वेरिएबल इन अ कोड एंड दैट इज़ व्हाई और ये नंबर सिर्फ 100 पे नहीं रुकता फॉर एग्जांपल हम हैं तो क्या हर यूज़र का डाटा हम एक अलग वेरिएबल के अंदर स्टोर कराएंगे बिल्कुल भी नहीं तो इस प्रॉब्लम को रिजॉल्व करने के लिए हमारे पास आता है एरे डाटा स्ट्रक्चर एरे कहता है कि हम कुछ इस तरीके का स्ट्रक्चर बिल्ड कर सकते हैं अरेज को हम इस तरीके से विजुलाइज करते हैं कि हम कुछ इस तरीके का स्ट्रक्चर बिल्ड कर सकते हैं जिसको वी इमेजिन लाइक अ ब्लॉक ऑफ डाटा एंड इसके हर एक स्ट्रक्चर के अंदर हम कुछ ना कुछ कुछ ना कुछ इंफॉर्मेशन है जिसे स्टोर कर सकते हैं और इस पूरे स्ट्रक्चर को हम नाम दे देते हैं एरे एंड इस पूरे स्ट्रक्चर का एक सिंगल नाम होता है व्हिच इज अ सिंगल वेरिएबल दैट वी नीड टू ट्रैक अब यहां पर क्योंकि मुझे पांच स्टूडेंट्स के मार्क्स स्टोर कराने थे मैंने क्या किया पांच साइज का स्ट्रक्चर बिल्ड कर दिया लेकिन कल को मुझे 100 स्टूडेंट्स के मार्क्स भी स्टोर कराने पड़े तो कुछ नहीं करना बस मुझे एक बड़ा स्ट्रक्चर जो है उसे बिल्ड करना है पर इस पूरे स्ट्रक्चर को डिफरेंट डिफरेंट वेरिएबल के नाम नहीं देंगे इस पूरे स्ट्रक्चर का एक ही नाम होगा जिसको मुझे ट्रैक करने की जरूरत है तो अरेज जो हैं हमारी मल्टीपल वेरिएबल वाली प्रॉब्लम को रिजॉल्व करते हैं अब जब भी हम एरे की बात करते हैं एरे के साथ कुछ-कुछ स्पेसिफिक प्रॉपर्टीज हैं जो आती हैं सबसे पहला एरे के अंदर हम सेम टाइप का डाटा ही स्टोर करा सकते हैं अगर इस ब्लॉक ऑफ कोड के अंदर हम इंटी जर कराना चाहते हैं तो हर एक सिंगल ब्लॉक ऑफ कोड के अंदर हम एक इंटी जर वैल्यू को स्टोर करवाएंगे एडिशनल अरेज आर कॉन्टिग्स इन मेमोरी ये जो चीज है ये हम पॉइंट्स वाला चैप्टर पढ़ेंगे तो हमें और ज्यादा समझ में आएगी पर बेसिकली जब एरे मेमोरी के अंदर क्रिएट होते हैं तो वो डेटा जो है एक साथ स्टोर होता है सारा का सारा डेटा एक साथ स्टोर होता है प्लस अरेज आर आल्सो लीनियर लीनियर मतलब जो भी हमारा एरे होता है उसको हम स्ट्रेट लाइन स्ट्रक्चर इस तरीके से एक के बाद एक डाटा अरेंज करने वाले स्ट्रक्चर की तरह इमेजिन कर सकते हैं अब लेट्स सपोज मुझे पांच स्टूडेंट्स के मार्क्स स्टोर करवाने हैं तो मैं अपने लिए एक एरे क्रिएट कर सकती हूं जिसको मैं कह दूंगी मार्क्स मुझे मार्क्स वन मार्क्स टू मार्क्स थ्री इस तरीके से वेरिएबल बनाने की जरूरत नहीं है मैंने जैसे ही अपना एक एरे क्रिएट किया मार्क्स जिसको क्रिएट करने का सिंटेक्स होता है कि मैं लिख दूं इंटी जर मार्क्स ऑफ साइज फाइव सिर्फ इतना लिखना होता है मुझे एक एरे को क्रिएट करने के लिए सबसे पहले मुझे बताना होता है कि एरे का हर एक जो ब्लॉक है वो किस टाइप का डाटा स्टोर कराएगा तो उसमें इंटी जर वैल्यू हमने लिख दी उसके बाद हमें अपने वेरिएबल का नाम बताना होता है जो कि मार्क्स होने वाला है मतलब पूरे एरे को हम मार्क्स कहेंगे उसके बाद स्क्वेयर ब्रैकेट्स के अंदर आई नीड टू कन्वे द साइज ऑफ माय एरे तो एरे के अंदर जितने भी ब्लॉक्स चाहिए मुझे जितने भी वेरिएबल चाहिए मुझे उसका हम यहां पर साइज बता रहे होते हैं इट्स वेरी सिमिलर टू क्रिएटिंग अ नॉर्मल वेरिएबल अगर मुझे इंटी जर वेरिएबल भी बनाना हुआ तो मैं लिखती मार्क्स व बस यहां पर सिंगल मार्क्स वन की जगह इस बार मुझे साइज़ बताना है टोटल नंबर ऑफ़ ब्लॉक्स का और यह जो हर ब्लॉक होता है यह जो मेमोरी ऑक्यूपाइड के बराबर मेमोरी ऑक्यूपाइड भी एक इंट स्टोर हो सकता है इसके अंदर भी एक इंट स्टोर हो सकता है इसके अंदर भी एक इंट स्टोर हो सकता है तो सारे का सारा जो एरे है सेम टाइप ऑफ़ डाटा स्टोर करता है प्लस कंटस इन मेमोरी होने का क्या मतलब है कॉन्टिग्स इन मेमरी होने का मतलब है लेट्स सपोज इस ब्लॉक का एड्रेस है 100 अगर हम 100 बाइट्स की फॉर्म में देख रहे हैं तो मुझे पता है कि यह ब्लॉक ऑफ कोड अगर 100 से स्टार्ट होगा अगर ये ब्लॉक 100 से स्टार्ट होगा तो यह वाला ब्लॉक चार बाइट्स की मेमोरी लेगा तो नेक्स्ट जो ब्लॉक ऑफ कोड है वो 104 से स्टार्ट होगा फिर ये दोबारा 4 बाइट्स की मेमोरी लेगा फिर नेक्स्ट ब्लॉक ऑफ कोड है वो 108 से स्टार होगा ये 4 बाइट्स की मेमोरी लेगा और ये 112 से स्टार्ट होगा एंड सिमिलरली दिस ब्लॉक इज गोइंग टू स्टार्ट फ्रॉम 116 तो इस तरीके से कंटीन्यूअस मैनर में डेटा जो है वो मेमोरी के अंदर जाकर स्टोर हो रहा है ऐसा नहीं है डेटा बिखरा हुआ है डटा इसी तरीके से कांटीगुअस मैनर में स्टोर होता है कांटीगुअस मतलब कंटीन्यूअस मैनर और लीनियर ये है क्योंकि हमने स्ट्रेट लाइन के अंदर अपने डाटा को इमेजिन कर लिया है तो एक बार अपने कोड के अंदर एक एरे को क्रिएट करते हैं एरे को क्रिएट करने के लिए हमें एरे का टाइप बताना होता है देन वी नीड टू कन्वे द एरे नेम मार्क्स एंड इसमें हम फाइव स्टूडेंट्स के मार्क्स स्टोर कराना चाहते हैं अगर कल को हम 100 स्टूडेंट्स के मार्क्स स्टोर कराना चाहे तो हम सिंपली इस फाइव को रिप्लेस कर सकते हैं विद 100 अगर हमें एक डबल एरे बनाना है लेट्स सपोज हमारे पास 100 आइटम्स है या हमारे पास 65 आइटम्स हैं तो हम हर एक आइटम का प्राइस स्टोर करा सकते हैं तो इस तरीके से वी नीड टू क्रिएट अ प्राइस एरे जिसका साइज होने वाला है 65 के इक्वल अब एरे को क्रिएट करने के मल्टीपल तरीके हैं सबसे पहला तरीका यह है जिसमें हमने एरे का सिर्फ साइज बताया है तो इस तरीके का एरे मेमोरी के अंदर क्रिएट हो गया होगा पर उस एरे के अंदर एलिमेंट्स नहीं है अभी अगर हमें ऐसा एरे डिफाइन करना है जिसे हम इनिश इज भी कर दें विद सम वैल्यूज तो उसे हम कैसे डिफाइन करेंगे उसे डिफाइन करने के लिए हम सिंपली लिख सकते हैं अपने कोड के अंदर इंटी जर मार्क्स इज इक्वल टू एंड इस तरीके से कर्ली ब्रेसस के अंदर हम अपनी पांच जो वैल्यूज हैं उनको असाइन कर सकते हैं तो लेट्स सपोज फर्स्ट स्टूडेंट के मार्क्स हैं 99 देन 100 54 36 एंड 88 तो इस तरीके से पांचों स्टूडेंट्स के हमने मार्क्स जैसे ही स्टोर कर दिए तो हर एक बॉक्स के अंदर यहां पर 99 आकर स्टोर हो जाएगा यहां 100 स्टोर हो जाएगा यहां 54 36 एंड 88 तो इस तरीके का एरे हमारी मेमोरी के अंदर क्रिएट हो गया होगा आल्सो जब हम अरेज को कुछ डाटा के साथ इनिश इज करते हैं और हम चाहते हैं कि एरे का साइज इस डाटा के ही इक्वल होना चाहिए तो हम चाहे तो लेफ्ट साइड से अपने साइज को स्किप कर सकते हैं जैसे लेट्स सपोज मैंने एरे क्रिएट किया प्राइस और प्राइस के अंदर मुझे तीन ही आइटम्स का प्राइस स्टोर कराना है एक हो गया 98.9 एक हो गया 105.6 लेट्स मेक इट ऑफ टाइप डबल एंड एक हो गया हमारे पास 30.00 तो इस तरीके से हमने जैसे ही तीन आइटम्स को स्टोर करा दिया ऑटोमेटिक हमारे ये जो प्राइस एरे है यह मेमोरी के अंदर तीन साइज का क्रिएट हो गया लेकिन जब हम इस तरीके से एरे को इनिश इइ करते हैं जरूरी नहीं है यहां पर अगर मैंने 50 लिख दिया तो मेमोरी के अंदर जो एरे क्रिएट होगा वो 50 साइज का क्रिएट होगा बस उसके शुरुआती पांच वैल्यूज हमने ऑलरेडी डिफाइन कर दिए होंगे तो हम चाहे तो वी कैन गिव अ साइज और इफ द साइज इज इक्विवेलेंट टू द डाटा ऑन द राइट साइड देन वी डोंट रियली नीड टू गिव अ साइज तो इस तरीके से हम अपने एरे को क्रिएट करते हैं और उसे हम डेटा के साथ इनिश इइ भी कर सकते हैं अब जब भी हमें एरे का डाटा एक्सेस करना होता है एक्सेस करने का मतलब है जब भी हम एरे के किसी भी एक जगह पर किसी भी एक बॉक्स में जाकर डटा को चेंज करना चाहते हैं उस डेटा को प्रिंट करना चाहते हैं तो उसके लिए वी यूज समथिंग कॉल्ड एरे इंडेक्स इंडेक्स का मतलब होता है पोजीशन एरे के अंदर जो हर एक बॉक्स है उसकी एक असाइन फिक्स्ड पोजीशन है एरे की जो पोजीशंस होती हैं वो स्टार्ट होती है रो से ये जो बॉक्स है यह रो पोजीशन पर है यह बॉक्स फर्स्ट पोजीशन पर है यह सेकंड पर है थर्ड पर है फोर्थ पर है और यहां से हमें लॉजिक समझ में आएगा कि क्यों हमने फॉर लूप की जब प्रैक्टिस की थी तो उसमें अपने लूप्स को हम जीरो से स्टार्ट कर रहे थे क्योंकि एरे जैसे जो डेटा स्ट्रक्चर होते हैं आगे जाके जो हम स्ट्रिंग पढ़ेंगे इनके अंदर पोजीशन या इंडेक्स जीरो से स्टार्ट होता है तो हमें अगर इन डेटा स्ट्रक्चर्स के ऊपर कोई लूप लगाना होता है देन वी नीड टू स्टार्ट दैट लूप फ्रॉम दिस इंडेक्स वैल्यू जीरो तो वो थोड़ा सा सिंपलर लूप हो जाता है तो अगर हम लिख देते हैं मार्क्सस एट इंडेक्स जीरो हम इस तरीके का स्क्वेयर ब्रैकेट लगाते हैं और अंदर कोई इंडेक्स वैल्यू लिखते हैं तो मतलब हम इस पोजीशन की बात कर रहे हैं अगर हमने लिख दिया मार्क्स एट इंडेक्स थी तो मतलब हम इस पोजीशन की बात कर रहे हैं एरे के जो इंडेक्स हैं हमेशा रो से लेकर साइज -1 तक जाते हैं तो इस एरे का साइज है फाइव के इक्वल एंड लास्ट जो इंडेक्स होगा दैट इज इक्वल टू फोर यानी साइज -1 तो एक बार इंडेक्स को यूज़ करके देखते हैं कोड के अंदर इन आवर मार्क्सस एरे वी हैव क्रिएटेडॉक्युमेंट्सफ्रैगमेंट पोजीशन के मार्क्स लेट्स सपोज हमने जीरो इथ पोजीशन के मार्क्स सी आउट कर दिए एंड यहां पर एक एंड लाइन भी दे देते हैं उसके साथ में हम चाहे तो सारी पोजीशंस के मार्क्स डिफरेंट डिफरेंट इंडेक्स वैल्यूज को एक्सेस करके प्रिंट करवा सकते हैं तो हमने यहां पर प्रिंट करा दिया तो सारे के सारे हमारे पास मार्क्स प्रिंट होकर आ गए एंड ये जो हमारा मार्क्स ब्रैकेट इंडेक्स है इसे बेसिकली अब हम एक सिंगल वेरिएबल की तरह ट्रीट कर सकते हैं जैसे लेट्स सपोज मुझे अगर वैल्यू चेंज करनी हुई मार्क्स 0 को 99 की जगह हम करेंगे अगर 101 तो वो करना भी पॉसिबल है तो जब हम मार्क्स को प्रिंट करवाएंगे तो हमारे पास 101 प्रिंट होकर आएगा अब हमें पता है कि एरे के लिए जो वैलिड इंडेक्स होता है वो हमेशा रो से साइज -1 तक जाता है तो अगर हमने साइज के बाहर का लेट्स सपोज हमने फिफ्थ इंडेक्स पे वैल्यू प्रिंट करवाने की कोशिश की तो उस केस में हमारे पास एक वार्निंग आने वाली है वॉर्निंग इज कि एरे इंडेक्स फाइव इज पास्ट द एंड ऑफ़ द एरे एंड ऑफ द एरे कहां हो गया साइज -1 पे पर आप तो साइज की वैल्यू को प्रिंट करवाने की कोशिश करें हैं जो एजिस्ट नहीं करता या फिर यहां पर अगर मैंने -1 लिख दिया जो ज़ीरो से छोटा होगा तो उस केस में वी आर गोइंग टू गेट द सेम एरर एरे इंडेक्स -1 इज बिफोर द बिगिनिंग ऑफ़ द एरे तो इस तरीके से हमें हमेशा लिमिट के अंदर ही एरे की वैल्यूज को एक्सेस करना है अगर हम इनवैलिड इंडेक्स लिखते हैं तो हमारे पास गार्बेज वैल्यूज आ सकती हैं नेक्स्ट हम सीखने वाले हैं कि कैसे अपने एरे के ऊपर हम एक लूप रन कर सकते हैं अब एरे इस के ऊपर जब हम एक लूप रन करते हैं जैसे फॉर एग्जांपल यहां पर हमने एलिमेंट्स को प्रिंट करवाया बाय राइटिंग फाइव सी आउट स्टेटमेंट्स पर जनरली अगर एरे का साइज 100 होगा तो हम 100 सी आउट स्टेटमेंट्स नहीं लिखेंगे तो जनरली एरे के ऊपर ऑपरेशंस परफॉर्म करने के लिए हम लूप्स का यूज़ करते हैं और लूप्स का यूज़ कैसे करते हैं हम एक लूप चलाते हैं जो एरे के इंडेक्स ज़ीरो से लेकर इंडेक्स साइज -1 तक जाता है तो ज़ीरो से लेकर साइज -1 के लूप के लिए हमें साइज की जरूरत होगी तो एरे का साइज़ या तो जनरली हमें ऑलरेडी गिवन होता है इन अ वेरिएबल कॉल्ड साइज या फिर हम उसे कैलकुलेट भी कर सकते हैं कैलकुलेट कैसे करेंगे लेट्स सपोज मुझे अगर अपना साइज कैलकुलेट करना है तो उसे हम करते हैं बाय राइटिंग साइज ऑफ तो इससे हमें पूरे एरे का साइज मिल जाएगा साइज ऑफ मार्क्स से क्या होता है अगर हमारे पास यह एरे है तो यह एरे टोटल कितनी बाइट्स ऑफ मेमोरी ऑक्यूपाइड साइज मिल जाएगा जैसे फॉर एग्जांपल यह जो हमारा एरे है इसमें एक बॉक्स फर बाइट्स ऑफ मेमोरी ऑक्यूपाइड इसस हैं तो 4 * 5 यानी ये 20 बाइट्स की मेमोरी ऑक्यूपाइड ऑफ मार्क्स है या साइज ऑफ एरे है यह बेसिकली हमें 20 बाइट्स प्रिंट करवा कर देगा इसको हम वेरीफाई भी कर सकते हैं अगर हम सी आउट करें साइज ऑफ मार्क्स तो उस केस में वी आर गोइंग टू गेट 20 तो यहां 20 आ गया अब ये तो टोटल एरे का साइज हो गया लेकिन हमें पता है हर एक एरे के इंडेक्स पे इंटी जर के बराबर मेमोरी है तो इस वैल्यू को जब हम डिवाइड कर देते हैं टू साइज ऑफ इंट तो हमारे पास एरे का साइज आ जाता है व्हिच इज इक्वल टू 5 तो इस तरीके से किसी भी एरे का हम नाम लिखते हैं उसका साइज निकालते हैं डिवाइडेड बाय साइज जो भी उसका टाइप है तो हमारे पास टोटल एरे का साइज आ जाता है पर जनरली एरे का साइज एक और वेरिएबल के अंदर हमें ऑलरेडी गिवन होता है पर हम चाहे तो खुद से भी कैलकुलेट कर सकते हैं अब हमें एक लूप चलाना है जो रो से साइज -1 तक जाए तो हम बेसिकली अपना एक लूप चला सकते हैं जो रो से स्टार्ट होता है i = 0 i लेस देन साइज तक जाता है i+ प् बहुत सिंपल ये लूप है हमने काफी सारे लूप्स किए हुए हैं पैटर्न के अंदर और हर बार हम चाहे तो सी आउट करा सकते हैं मार्क्स के अंदर इंडेक्स नंबर आई पर जो भी वैल्यू है वो इंडेक्स की वैल्यू पहले रो होगी फिर वन होगी फिर टू होगी फिर थ्री होगी उस तरीके से मार्क्स ऑफ़ रो मार्क्स ऑफ़ वन मार्क्स ऑफ़ टू हमारे पास प्रिंट होकर आ जाएंगे एंड इफ वी ट्राई टू प्रिंट इट तो इस तरीके से हमारे पास सारे एलिमेंट्स प्रिंट होकर आ जाएंगे तो ये तो हमने आउटपुट करा दिया सारी की सारी वैल्यूज को लूप से हम चाहे तो सारी वैल्यूज को इनपुट भी ले सकते हैं इन द फॉर्म ऑफ अ लूप तो लेट्स सपोज हमने इनिश इज नहीं किया अपने एरे को हमने सिर्फ बता दिया कि हमारे पास एक एरे है जिसका साइज है फाइव के इक्वल इनफैक्ट ये जो साइज है इसे हम ऊपर लिख सकते हैं एंड यहां पर हम साइज वेरिएबल लिख सकते हैं अब सारी की सारी वैल्यूज को इनपुट लेने के लिए हम सिमिलर लूप चला सकते हैं जो i = इ 0 से लेकर साइज तक जाता है और यहां पर हम सी इन कर सकते हैं मार्क्स ऑफ i को तो मार्क्स ऑफ आ मार्क्स ऑफ इंडेक्स बेसिकली अब एक वेरिएबल है जिसको इनपुट किया जा सकता है आउटपुट किया जा सकता है चेंज किया जा सकता है तो हम जो फाइव मार्क्स की वैल्यू एंटर करेंगे वो हमारे एरे के अंदर जाकर स्टोर हो जाएगी और वही हमारे लिए आकर प्रिंट हो जाएगी तो सेव करा के इसे रन कराते हैं लेट्स सपोज हमने जो वैल्यू एंटर की इट इज 12 13 14 15 एंड 16 यह पांच वैल्यूज हमने एंटर की तो यही पांच वैल्यूज हमारे पास प्रिंट होकर आ गई तो इस तरीके से हम एक एरे के ऊपर लूप चला सकते हैं और एक-एक एरे का जो इंडेक्स है एक-एक एरे का जो इंडेक्स है वहां जाकर हम अपने रिक्वायर्ड ऑपरेशंस को परफॉर्म कर सकते हैं अब नेक्स्ट लूप्स को यूज़ करके एक छोटा सा सवाल सॉल्व करते हैं बेस्ड ऑन अरेज वी हैव टू फाइंड आउट द स्मॉलेट एंड द लार्जेस्ट नंबर इन एन एरे एग्जांपल के लिए शुरुआत में सिर्फ हम स्मॉलेट नंबर फाइंड आउट करेंगे जैसे लेट्स सपोज हमारे पास ये हमारा एक एरे है जो गिवन है जिसके अंदर फाइव है वी हैव 15 वी हैव 22 वी हैव वन वी हैव -15 एंड वी हैव 24 तो इस तरीके से हमारे पास डिफरेंट डिफरेंट वैल्यूज हैं और इसमें से हमें स्मॉलेट वैल्यू निकालनी है अब स्मॉलेट वैल्यू निकालने के लिए हमें पता है कि हमें एरे के हर एक सिंगल वैल्यू को चेक करने की जरूरत पड़ेगी तो क्यों ना हर एक सिंगल वैल्यू को चेक करने के लिए हम एक लूप चला दें और वो लूप कहां से शुरू होता है एरे के लूप्स जनरली ज़ीरो से स्टार्ट होते हैं साइज -1 तक जाते हैं तो सबसे पहले इस इंडेक्स पर जाएंगे यहां पे चेक करेंगे स्मॉलेट वैल्यू है क्या नेक्स्ट पर जाएंगे चेक करेंगे यह स्मॉलेट वैल्यू है क्या हमारे पास नेक्स्ट इंडेक्स पर जाएंगे और सेम चीज हम चेक करते चले जाएंगे जब तक हम एरे के लास्ट इंडेक्स तक नहीं पहुंच जाते अब जब भी हमें चेक करना है कि कोई भी वैल्यू स्मॉलेट वैल्यू है क्या उसे मुझे किसी वैल्यू से कंपेयर करना पड़ेगा तो हम क्या कर सकते हैं एक वेरिएबल बना सकते हैं इंट स्मॉलेट एंड इस वेरिएबल को हम इनिशियलिज्म है लार्जेस्ट पॉसिबल वैल्यू ला जस्ट पॉसिबल इंटी जर वैल्यू से अगर मैंने इसे इनिश इज कर दिया तो कोई भी वैल्यू जब इस वैल्यू से कंपेयर करेगी जैसे फ और प्स इनफिनिटी को हम कंपेयर करेंगे तो स्मॉलेट कौन सा होगा स्मॉलेट ऑब् वियस फाइव होगा तो फाइव ही आंसर के अंदर आएगा जब बाद में जाके वन को कंपेयर किया जाएगा फाइव के साथ यहां पे जब फाइव आ जाएगा वन को कंपेयर करेंगे फाइव के साथ तो दोबारा वन क्या करेगा व फ से स्मॉल होगा तो यहां पे आंसर में वन आ जाएगा तो इस तरीके से कंपैरिजंस की शुरुआत कहां से होती है जब भी स्मॉलेट निकालना होता है कंपैरिजंस की शुरुआत हम लार्जेस्ट पॉसिबल नंबर से करते हैं ताकि ये नंबर हारे ही हारे हर कंपैरिजन में क्योंकि हम नहीं चाहते कभी भी यह आंसर हो हम चाहते हैं दूसरा कोई वैलिड आंसर हमारे पास निकल कर आए तो प्लस इनफिनिटी को प्रोग्रामिंग के अंदर c+ प के अंदर हम कहते हैं इंटी जर अंडर मैक्स ये कैपिटल में लिखते हैं हम पूरा अपर केस के अंदर और इसका मतलब होता है प्लस इनफिनिटी इन c+ प प्लस इनफिनिटी कहने का मतलब है लार्जेस्ट पॉसिबल वैल्यू फॉर एनी इंटी जर नंबर उसी को हम प्लस इनफिनिटी कहेंगे तो शुरुआत हमने कर दी इंट मैक्स से अब सबसे पहले फ फर्स्ट इंडेक्स पे जाएंगे फाइव को कंपेयर करेंगे अब फाइव को जब हम कंपेयर करेंगे प्लस इनफिनिटी से ओबवियसली फाइव छोटा होगा और यह हमें कैसे पता चलेगा या तो हम एक इफ एल्स यूज़ कर सकते हैं यानी अगर हमारा जो भी हमारे नंबर्स हैं लेट्स कॉल दिस एरे नम्स अगर नम्स ऑफ i की वैल्यू किसी भी इंडेक्स पे नम्स ऑफ़ i की वैल्यू अगर छोटी हो जाती है स्मॉलेट से स्मॉलेट यानी जो भी हमारा आंसर है तो हम क्या कर देंगे स्मॉलेट को हम अपडेट करके कर देंगे नम्स ऑफ i आई होप यह लॉजिक हमें समझ में आया होगा कि जैसे ही प्लस इनफिनिटी से छोटी कोई वैल्यू मिल जाती है तो स्मॉलेट में क्या आ जाएगा स्मॉलेट में वो छोटी वैल्यू आ जाएगी जैसे यहां पर हमारे पास आ जाएगा फाइव अब नेक्स्ट टाइम जब हम अपडेट करेंगे तो 15 को अब इस फाइव से कंपेयर किया जाएगा क्योंकि अब स्मॉलेट में तो हमारे पास फाइव है और नम्स ऑफ़ फ 15 है तो 15 लेन 5 नहीं होता तो हमें कोई ऑपरेशन परफॉर्म नहीं करना अब हम अपने इंडेक्स को दोबारा से अपडेट कर देंगे 22 को 5 से कंपेयर करेंगे कोई ऑपरेशन परफॉर्म नहीं करना फिर व को हम सब फाइव से जब कंपेयर करेंगे तो 1 5 से छोटा है तो यहां पर फाइव को हटाकर हम आंसर के अंदर लिख देंगे वन क्योंकि यह कंडीशन वर्क करेगी उसके बाद हम इंडेक्स को बढ़ा देंगे -15 -15 1 से भी छोटा है तो यहां पर हमारे पास -15 आ जाएगा फिर से दोबारा इंडेक्स को बढ़ा देंगे क्योंकि हमें एंड तक चेक करने की जरूरत है क्योंकि हमें नहीं पता कि लास्ट इंडेक्स पे -24 हुआ तो तब तो यही आंसर होगा तो हम बिल्कुल लास्ट वाले इंडेक्स तक जाकर चेक करते हैं जब भी स्मालेस्ट या लार्जेस्ट फाइंड आउट करना होता है तो अब 24 को जब -15 से कंपेयर करेंगे तो -15 छोटा है तो वो वैसे का वैसा रहेगा और फाइनल आंसर कहां पर होगा फाइनल आंसर इस स्मॉलेट वेरिएबल के अंदर होगा व्हिच इज गोइंग टू बी इक्वल टू -1 तो ये जो पूरा लॉजिक है इसे एक बार कोड के अंदर कन्वर्ट करते हैं सबसे पहले तो लेट्स क्रिएट एन एरे कॉल्ड नम्स नम्स के अंदर हमारे पास डिफरेंट डिफरेंट नंबर्स जो है वो स्टोर्ड हैं 5 15 22 1 - 15 एंड 24 ये नंबर्स हमारे पास स्टोर्ड हैं इसका साइज भी हम साथ में लिख लेते हैं साइज इज गोइंग टू बी इक्वल टू 6 अब अगर हमें स्मॉलेट निकालना है तो उसे कहीं पर किसी वेरिएबल के अंदर हम स्टोर कराएंगे तो स्मॉलेट को हम इनिश इज करते हैं विद इंट मैक्स यानी पॉजिटिव इनफिनिटी तो अब एक लूप चलाएंगे फॉर इंटी जर i = 0 i < साइज i + प्स हर बार हम कंपेयर कर लेंगे अगर नम्स ऑफ i की वैल्यू लेस देन है हमारे स्मॉलेट से मतलब जो दोनों में से जो भी छोटा है अगर स्मॉलेट छोटा है तब तो कोई चेंज नहीं करना पर अगर नम्स ऑफ i छोटा हो गया तब स्मॉलेट की वैल्यू अप डेट हो जाएगी टू नम्स ऑफ i एंड लास्ट में जाकर लूप खत्म होने के बाद हम प्रिंट करवा सकते हैं स्मॉलेट इज इक्वल टू स्मॉलेट वैल्यू एंड ऑफ लाइन इसे रन करेंगे तो हमारे पास आंसर आएगा -15 के इक्वल अगर यहां पर -15 की जगह -24 होता तो उस केस में आवर आंसर वुड हैव बीन -24 सो दिस इज हाउ वी कैलकुलेट द स्मॉलेट वैल्यू विद द हेल्प ऑफ अ लूप इनसाइड एन एरे और सिर्फ स्मॉलेट नहीं हम चाहे तो ला लार्जेस्ट हम चाहे तो सम ऑफ ऑल वैल्यूज प्रोडक्ट ऑफ ऑल वैल्यूज बेसिकली कोई भी ऐसा ऑपरेशन जिसमें हमें रिक्वायर्ड होता है कि हम हर एक इंडेक्स पर जाए और उस चीज को कंप्यूट करें कैलकुलेट करें तो उसके लिए हम इस तरीके से अपने लूप्स को यूज कर सकते हैं आल्सो एक और चीज जो मैं आपको सिखाना चाहूंगी यहां पर दैट इज द मिन फंक्शन बेसिकली हमारे पास दो फंक्शंस होते हैं c+ के अंदर कॉल्ड मिन एंड मैक्स जब भी हमें दो नंबर्स का मिनिमम फाइंड आउट करना होता है तो उसके लिए हम मिन को यूज कर सकते हैं जैसे फॉर एग्जांपल मुझे पता करना है कि नम्स ऑफ आ एंड स्मॉलेट में से छोटी वैल्यू कौन सी है तो उसके लिए मैं एक मिन फंक्शन लूंगी यह इंप्ली सिट फंक्शन है यह ऑलरेडी हमारे पास अवेलेबल होता है इसका लॉजिक ऑलरेडी लिखा हुआ है तो यह मिन फंक्शन है जिसके अंदर हम दो आर्गुमेंट पास करते हैं नम्स ऑफ़ i एंड स्मॉलेट और यह हमें रिटर्न करेगा वह वैल्यू जो छोटी है और जो भी छोटी वैल्यू होगी उसे हम अपने स्मॉलेट के अंदर लिख सकते हैं तो यह जो पूरा इफ हमने लिखा है इसको लिखने का शॉर्ट तरीका है यह एक सिंगल स्टेटमेंट जिसमें हम अपने मिन फंक्शन को यूज़ कर सकते हैं और यह हमें मिनिमम ऑफ़ दीज टू वैल्यूज रिटर्न करेगा जिसको हम स्मॉलेट के अंदर स्टोर करा देंगे तो यह भी जो तरीका है यह हमें सेम आंसर जो है वो रिटर्न करके देगा सो दिस वाज द लॉजिक फॉर फाइंडिंग द स्मॉलेट वैल्यू अगर हमें लार्जेस्ट वैल्यू फाइंड आउट करनी है तो सारी चीजों को बस रिवर्स करना है बेसिकली इस बार हम एक वेरिएबल ले लेंगे इंटी जर लार्जेस्ट जैसे हमने स्मॉलेट को प्लस इनफिनिटी के साथ इनिश इज किया था इस बार हमारा जो लार्जेस्ट होगा उसे हम इनिश इज करेंगे अपने लार्जेस्ट को इनिशियलिज्म माइनस इनफिनिटी क्योंकि हम चाहते हैं लार्जेस्ट किसी भी नंबर के साथ कंपेयर करें तो हमेशा दूसरा नंबर जीते तो लार्जर को हम सबसे छोटी पॉसिबल वैल्यू बनाएंगे कि यह कभी जीत ही ना पाए जब कंपैरिजन हो रहे होते हैं एंड माइनस इनफिनिटी इज इंट मिन इन c+ प तो यहां पर वी आर गोइंग टू राइट इंट मिन अब इंट मिन जो है इसके हम कंपैरिजन करेंगे तो यहां पर जब हम कंपैरिजन कर रहे हैं फॉर लूप में तो स्मॉलेट के साथ लार्जेस्ट फाइंड आउट कर सकते हैं एज मैक्स ऑफ नम्स ऑफ आ एंड लार्जेस्ट और लास्ट में स्मॉलेट एंड लार्जेस्ट दोनों को हम प्रिंट करवा सकते हैं तो बेसिकली लार्जेस्ट फाइंड आउट करने के लिए मुझे कोई अलग से लूप नहीं लगाना मैं सिंगल लूप के अंदर दोनों वैल्यूज को फाइंड आउट कर सकती हूं क्योंकि इवेंचर निकालना हो चाहे लार्जेस्ट निकालना हो हम जा तो एक एक इंडेक्स पर रहे हैं ना तो इस पर्टिकुलर एरे के लिए स्मॉलेट वैल्यू -24 हो गई लार्जेस्ट वैल्यू हमारे पास 22 निकल कर आ गई तो इस तरीके से स्मालेस्ट एंड लार्जेस्ट वैल्यूज को हम फाइंड आउट कर सकते हैं यहां पर करके एक होमवर्क प्रॉब्लम आपको सॉल्व करनी है बेसिकली व्हाट यू हैव टू डू इज आपको स्मॉलेट एंड लार्जेस्ट वैल्यूज जिस इंडेक्स पर स्टोर्ड है उस इंडेक्स को प्रिंट करवाना है तो दिस इज वन थिंग दैट यू हैव टू डू कि इस बार वैल्यू नहीं जैसे अगर -15 स्मॉलेट है तो मुझे -15 का इंडेक्स चाहिए व्हिच इज इक्वल टू 4 तो मुझे इस फोर को प्रिंट करवाना है मुझे -15 को प्रिंट नहीं करवाना ये हम कैसे प्रिंट करवाएंगे उसके लिए किस तरीके से वैल्यूज को इनिला करें करेंगे क्या कंपैरिजन होंगे वो आपको खुद से सोचने की जरूरत है तो यह चीज मैं आपको एज अ होमवर्क प्रॉब्लम दे रही हूं नेक्स्ट जो हम चीज स्टडी करने वाले हैं इसे हम कहते हैं पास बाय रेफरेंस अब पास बाय वैल्यू को हमने ऑलरेडी देखा था फंक्शंस वाले चैप्टर के अंदर हमने पास बाय वैल्यू पढ़ा था और पास बाय वैल्यू का मतलब है जो भी हमारे प्रिमिटिव डेटा टाइप्स के वेरिएबल होते हैं उनको अगर हम आर्गुमेंट की तरह किसी फंक्शन को पास करते हैं लेट्स सपोज ये मेरा मेन फंक्शन है जिसके अंदर मैंने कोई वेरिएबल बनाया x जिसके अंदर वैल्यू स्टोर्ड है 10 और मेन फंक्शन अगर किसी दूसरे फंक्शन को कॉल कर रहा है व्हिच इज चेंज x तो उसके अंदर इस x की एक और कॉपी बनने वाली है जिसको मैं अलग कलर से हाईलाइट कर देती हूं और उसके अंदर यही जो सेम वैल्यू है ये कॉपी होकर आएगी अब अगर यहां पर हम कोई चेंज करते हैं 10 की जगह अगर हम 15 कर देते हैं तो वो चेंज मेन फंक्शन के अंदर रिफ्लेक्ट नहीं करेगा यह होता था पास बाय वैल्यू अब हम इसी का अपोजिट पढ़ने वाले हैं व्हिच इज पास बाय रेफरेंस रेफरेंस का मतलब एक तरीके से होता है एड्रेस और एड्रेसस ये जो रेफरेंस का पूरा कांसेप्ट है ये हमें और ज्यादा डिटेल में पॉइंट्स वाले चैप्टर के अंदर समझ में आएगा सो व्हेन वी टॉक अबाउट पास बाय रेफरेंस व्हाट डू वी एगजैक्टली डू पास बाय रेफरेंस में हम क्या करते हैं पास बाय रेफरेंस में पूरा का पूरा हमारा जो डेटा स्ट्रक्चर होता है इसे हम नॉन प्रिमिटिव डेटा टाइप्स के लिए यूज़ करते हैं जैसे एरे जो है एरे एक नॉन प्रिमिटिव डेटा टाइप है प्रिमिटिव का मतलब होता है सिंपल अरेज उतने सिंपल नहीं होते मेमोरी के अंदर तो नॉन प्रिमिटिव इने हम कहते हैं तो जब भी हम पास बाय रेफरेंस करते हैं हमारे पूरे डाटा स्ट्रक्चर का एक तरीके से हम एड्रेस पास कर देते हैं किसी भी फंक्शन को और जब भी आपके पास किसी भी चीज का एड्रेस हो ना प्रोग्रामिंग के अंदर मतलब आप उसमें जाकर उसी सेम ओरिजिनल कॉपी के अंदर जाकर आप चेंजेज कर सकते हैं जैसे हमारे जो एरे होते हैं जब भी हम किसी फंक्शन को अपना एरे पास करेंगे तो एरे हमेशा पास बाय रेफरेंस ही होगा इंपलीसिटली ऑटोमेटिक जैसे लेट्स टेक एन एग्जांपल ऑफ अ सिंपल एरे इंटी जर एरे है हमारे पास ऑफ साइज थ्री जिसके अंदर वैल्यूज है टूथ अब अगर हमने एक फंक्शन बनाया लेट्स कॉल इट वॉइड चेंज एरे चेंज एरे के अंदर हमारे पास एक इंटी जर एरे आएगा और उस इंटी जर एरे का हमारे पास साइज आएगा और हम क्या करेंगे इस फंक्शन के अंदर i = 0 से लेकर i < साइज i+ प् हम अपने एरे के हर एक इंडेक्स पर वैल्यू को डबल कर देंगे उसे हम कर देंगे 2 * एरे ऑफ i तो यहां से हम फंक्शन कॉल करेंगे अपना चेंज चेंज एरे जिसके अंदर एरे पास कर देंगे एंड साइज पास कर देंगे एस थ्री एंड यहां पर अब हम इसी तरीके का एक लूप चलाएंगे जिससे एरे की वैल्यूज को प्रिंट करवाएंगे तो यहां पर हम सी आउट करा देते हैं इन मेन एंड यहां पर सी आउट करा देते हैं इन फंक्शन यहां पर साइज हो जाएगा थ्र के इक्वल एंड यहां पर हम सी आउट कराएंगे अपना एरे ऑफ आ एंड ऑफ लाइन तो इस कोड को जब हम रन करेंगे तो इंटरेस्टिंग चीज हमें ये देखने को मिलेगी कि एरे के ओरिजिनल एलिमेंट्स थे 1 2 3 फिर चेंज एरे को कॉल किया गया चेंज एरे ने हर एलिमेंट को डबल कर दिया अब इस फंक्शन में तो डबल हो जाएंगी वैल्यूज पर जैसे ही मेन फंक्शन के अंदर हम वापस आएंगे पास बाय वैल्यू होता तो क्या होता हमारी ओरिजिनल वैल्यूज रहती 1 2 3 लेकिन अब यहां पर वैल्यूज अपडेट होकर हो गई हैं 2 4 एंड 6 यानी जो चेंज एरे के अंदर हुआ किसी फंक्शन ने किया वो मेन फंक्शन के अंदर भी रिफ्लेक्ट कर रहा है एंड इसी को कहते हैं हम पास बाय रेफरेंस क्योंकि इंटरनली क्या हुआ है इंटरनली जब हमने अपना एक एरे क्रिएट किया अपना एरे हमने मेमोरी के अंदर जब क्रिएट किया तो इस तरीके का तीन साइज का एरे क्रिएट हुआ जिसके अंदर 1 2 3 स्टोर्ड था अब ये जो एरे है इसका लेट्स सपोज हमारे पास एड्रेस है 100 104 108 इस तरीके का हमारे पास एड्रेस है तो इंटरेस्टिंग चीज जो c+ प के अंदर होती है वो यह होती है कि एरे का जो नाम होता है नेम होता है वो इंपलीसिटली एक पॉइंटर होता है पॉइंटर क्या होते हैं हम बाद में सीखेंगे पर बेसिकली पॉइंट्स एक कैसी चीज होती है जो एड्रेस को स्टोर कराता है एड्रेस मतलब ये जो एरे है मतलब ए आरआर जो मेरे एरे का नाम है ये बेसिकली इस 100 वैल्यू को स्टोर कराता है ये अपने पूरे के पूरे एरी के स्टार्टिंग एड्रेस को स्टोर कराता है और कभी भी अगर आपको स्टार्टिंग एड्रेस मिल जाए अगर आपको 100 मिल जाए और आपको पता है इंटी जर एरे है तो उसमें फोर ऐड करके आप 104 निकाल लोगे नेक्स्ट इंडेक्स उसमें फोर ऐड करके आप 108 निकाल लोगे नेक्स्ट इंडेक्स उसमें फोर ऐड करके आप 112 निकाल लोगे नेक्स्ट इंडेक्स तो कभी भी अगर हमारे पास स्टार्टिंग इंडेक्स आ आ जाए एरे का तो हम पूरे एरे को ट्रैवर्स कर सकते हैं अगर हमारे पास एरे का टाइप भी आ जाए और एरे का साइज भी आ जाए तो यहां पर स्टार्टिंग एड्रेस कौन स्टोर कराता है स्टार्टिंग एड्रेस एरे का जो नाम होता है एरे का जो वेरिएबल होता है वही स्टोर करा रहा होता है तो जब भी हम एक फंक्शन के अंदर लेट्स सपोज ये तो हमने मेन फंक्शन के अंदर एरे को बना दिया अब ये मेन फंक्शन अगर किसी और फंक्शन को कॉल लगाता है लेट्स सपोज इसने चेंज एरे को कॉल लगाई तो चेंज एरे के अंदर ये पूरी की पूरी कॉपी जाके दोबारा नहीं बनती है वो तो चेंज बाय वैल्यू हो जाएगा एरे के केसेस में क्या होता है इसका जो ये स्टार्टिंग एड्रेस होता है ये यहां पे आता है इस नए एरे के अंदर जिसमें स्टार्टिंग एड्रेस 100 है तो जब भी हम अपने चेंज एरे फंक्शन के अंदर कोई ना कोई चेंज कर रहे हैं तो हम इसी एड्रेस पे जाके चेंज करेंगे तो ये एड्रेस कहां पे है ये एड्रेस ओरिजिनल एरे पर हमें वापस लेकर जाता है तो पास बाय रेफरेंस का मतलब होता है हम रेफरेंस भेज रहे हैं मतलब ये एड्रेस भेज रहे हैं व्हिच इज द स्टार्टिंग एड्रेस ऑफ दिस एरे तो यहां पर इस एड्रेस पर जाकर जब वन की जगह टू किया जाएगा तो ये जो वन की जगह हमने ने टू किया ये ओरिजिनल के अंदर रिफ्लेक्ट करेगा यहां भी ओरिजिनल के अंदर रिफ्लेक्ट करेगा यहां भी ओरिजिनल के अंदर रिफ्लेक्ट करेगा तो सारे के सारे जो चेंजेज हैं वो ओरिजिनल एरे के अंदर रिफ्लेक्ट करते हैं क्योंकि कोई कॉपी क्रिएट ही नहीं होती पास बाय वैल्यू की तरह तो c+ प के अंदर रेफरेंस का मतलब होता है एड्रेस या पास बाय रेफरेंस का मतलब होता है कि हम ओरिजिनल के अंदर सारे की सारी जो चेंजेज हैं वो कर रहे होते हैं तो कभी भी किसी फंक्शन को हम अपना एरे पास करते हैं उसे बड़े सोच समझ के पास करना है क्योंकि उस फंक्शन ने अगर कोई चेंजेज कर दिए तो वो हमारी मेन फंक्शन या कॉलिंग फंक्शन के अंदर भी रिफ्लेक्ट कर रहे होंगे तो आई होप पास बाय रेफरेंस का कांसेप्ट हमें समझ में आया होगा बाकी पास बाय रेफरेंस को एड्रेसस को पॉइंट्स को हम और ज्यादा डिटेल में अपने पॉइंट्स वाले चैप्टर के अंदर पढ़ेंगे नेक्स्ट जिस कांसेप्ट की हम बात करेंगे दिस इज कॉल्ड लीनियर सर्च लीनियर सर्च एक तरीके से हमारा एक एल्गोरिदम होता है एक फिक्स्ड एल्गोरिदम होता है लीनियर सर्च को करने का तरीका भी फिक्स्ड होता है फॉर एग्जांपल हमारे पास यह एरे है इस एरे को विजुलाइज भी कर देते हैं मेमोरी के अंदर यह एरे कुछ ऐसा दिखाई देगा जिसके अंदर वी हैव डिफरेंट एलिमेंट्स 8 1 2 एंड 5 तो इस तरीके से हमारे पासस डिफरेंट डिफरेंट एलिमेंट्स हैं और यहां पर यहां से हमारा एरे जो है वो स्टार्ट हो रहा है अपनी इंडेक्स वैल्यूज को भी लिख लेते हैं 0 1 2 3 4 5 एंड 6 तो एरे का जो साइज है दैट इज इक्वल टू 7 अब अगर इस तरीके का हमें एरे दिया जाता है साथ के साथ हमें एक टारगेट दिया जाता है कि इस टारगेट वैल्यू को मुझे इस एरे के अंदर सर्च करना है और जिस भी इंडेक्स पर वो वैल्यू मिलेगी मुझे उस इंडेक्स को रिटर्न करना है तो ये हमारे पास एक सिंपल सी प्रॉब्लम है जो हमें दी गई है अब ये जो प्रॉब्लम है इसे सॉल्व करने के मल्टीपल तरीके एजिस्ट करते हैं तो हमें बेसिकली अपने एरे पर एक सर्च ऑपरेशन को परफॉर्म करना है जो सर्च ऑपरेशन हमें अगर वैल्यू मिल जाए तो उस केस में हमें इंडेक्स रिटर्न कर दे और लेट्स सपोज अगर यहां पे 8 की जगह 80 होता अब 80 तो इस पूरे एरे के अंदर कहीं एजिस्ट नहीं करता तो उस केस में हम -1 रिटर्न करना चाहते हैं -1 रिटर्न करने का मतलब है इनवैलिड इंडेक्स क्योंकि -1 कोई इंडेक्स होता ही नहीं अगर रो से 6 तक करें देंगे तो वैलिड इंडेक्स होगा -1 का मतलब है इनवैलिड इंडेक्स -2 भी हो सकता था -5 भी हो सकता था अगर वैल्यू मिल जाए तो इंडेक्स रिटर्न कर दो नहीं तो -1 रिटर्न कर दो तो हमें बेसिकली इस टारगेट वैल्यू को अपने पूरे के पूरे एरे के अंदर सर्च करना है अब सर्च करने के मल्टीपल तरीके हैं पर इनमें से एक एल्गोरिथम जिसको हम यूज़ करते हैं सर्च करने के लिए इट इज कॉल्ड लीनियर सर्च एल्गोरिथम लीनियर सर्च एल्गोरिथम बहुत सिंपल है लीनियर सर्च एल्गोरिथम कहती है कि सर्च करने का क्या तरीका अपनाओ आप एक लूप ल लगा दो और लूप में बार-बार इंडेक्स पे जाके चेक करो कि क्या इस इंडेक्स पे मेरी मेरा टारगेट एजिस्ट करता है नहीं एजिस्ट करता अब अगले इंडेक्स पे चेक करो कि यहां पे मेरा टारगेट एजिस्ट करता है क्या यहां पे मेरा टारगेट एजिस्ट करता है क्या यहां पे मेरा टारगेट एजिस्ट करता है और जैसे ही टारगेट एजिस्ट करता हो मिल जाए एट को सर्च कर रहे थे एट मिल गया तो अब जिस भी इंडेक्स पर हो इसकी वैल्यू रिटर्न कर दो मतलब इंडेक्स थ्री पर है तो हम थ्री की वैल्यू को रिटर्न कर देंगे पर लेट्स सपोज हमें 80 सर्च करना होता यहां भी एजिस्ट नहीं करता यहां भी नहीं करता यहां भी नहीं करता पूरे एरे के अंदर कहीं भी नहीं करता जैसे ही हम लास्ट इंडेक्स पर पहुंचे और हमें पता चल गया कि यह तो एजिस्ट नहीं करता तो उस केस में हमें क्या रिटर्न करना है उस केस में हमें -1 को रिटर्न करना है तो इसका ओवरऑल फ्लो कैसा रहेगा क्या लॉजिक रहेगा हमारा कि हम लीनियर सर्च को परफॉर्म कर पाए बहुत सिंपल लॉजिक होने वाला है इनफैक्ट लीनियर सर्च जो है लीनियर सर्च वन ऑफ द मोस्ट सिंपल एल्गोरिथम है सबसे इजी एल्गोरिथम है प्रोग्रामिंग की लीनियर सर्च कुछ नहीं करना हमें एक लूप चलाना है फॉर इंटी जर i इक्व रो i लेसन साइज i+ प् एक लूप चलाना है अब हर बार मुझे चेक करना है जहां पर भी मेरा एरे ऑफ आ है क्या यहां पर मेरा टारगेट एजिस्ट करता है तो चेक करने के लिए लिखेंगे इफ माय एरे ऑफ आ इक्वल्स माय टारगेट तो मतलब यहां पर यह वैल्यू अगर सच हो गई तब तो मुझे मैच मिल गया तब तो सिंपली क्या करना है जिस इंडेक्स पर हूं उस इंडेक्स की वैल्यू को रिटर्न करना है जैसे फॉर एग्जांपल इफ आई एम ऑन दिस इंडेक्स यहां पर टारगेट मैच कर गया तो मुझे वल्य 3 को रिटर्न करना है और इंडेक्स क्या है इंडेक्स है i के इक्वल तो मुझे सिंपली यहां से मैं रिटर्न कर सकती हूं i हम एक फंक्शन बना सकते हैं जिसका रिटर्न टाइप इंटी जर है और जिसमें हम लीनियर सर्च करने की कोशिश कर रहे हैं दैट इज व्हाई आई एम यूजिंग द रिटर्न आई स्टेटमेंट नहीं तो आप मेन फंक्शन के अंदर कर रहे हैं तो आप सिंपली ब्रेक भी कर सकते हैं और कोई एक्स्ट्रा वेरिएबल आंसर लेकर उस आंसर के अंदर आ को स्टोर करवा सकते हैं बट मैं फंक्शन यूज़ करने वाली हूं बिकॉज़ इट्स गोइंग टू बी सिंपलर तो यहां से मैंने रिटर्न कर दिया i को अगर यह मैच नहीं होता तो उस केस में क्या करना है उस केस में हमें कुछ नहीं करना उस केस में हमें आगे बढ़ जाना है तो आगे तो ऑटोमेटिक लूप हमें बढ़ा ही देगा तो और कुछ कोड हमें लिखने की जरूरत नहीं है लेकिन अगर आगे बढ़ते बढ़ते बढ़ते बढ़ते बढ़ते बढ़ते हम लास्ट इंडेक्स तक आ गए और फिर भी मुझे मेरा टारगेट 80 नहीं मिला तो उस केस में मुझे पता है मुझे -1 रिटर्न करना पड़ेगा तो सिंपली यहां पर लास्ट में आके हम रिटर्न कर देंगे -1 और यहां लास्ट में हम तभी पहुंचेंगे जब कोई भी आ रिटर्न नहीं हुआ होगा तभी इस स्टेटमेंट तक हम पहुंच पाएंगे मैंने आपको फंक्शंस के अंदर ही बताया था कि रिटर्न स्टेटमेंट के के बाद कोई एग्जीक्यूशन नहीं होता तो जैसे ही ये रिटर्न आ हो गया होगा ये लूप चलना बंद हो गया होगा और ये स्टेटमेंट तक हम कभी पहुंचे ही नहीं होंगे तो अगर रिटर्न आ हो गया मतलब आंसर रिटर्न हो गया पर अगर रिटर्न आ नहीं हुआ तो उस केस में हमने यहां लास्ट में आकर -1 को रिटर्न किया है तो ये जो पूरा का पूरा लॉजिक है इसे एक बार अपने लीनियर सर्च के कोड के अंदर कन्वर्ट करते हैं लीनियर सर्च के कोड के लिए वी आर गोइंग टू राइट अ फंक्शन कॉल्ड इंटी जर [संगीत] लीनियर सर्च लीनियर सर्च में एक तो हमारे पास हमारा एक एरिया आने वाला है प्लस उस एरे का हमारे पास साइज आने वाला है तो हम अपने एरे को क्रिएट कर सकते हैं यहां पर इंटी जर एरे इज गोइंग टू बी इक्वल टू 4 2 7 8 1 2 एंड 5 एंड इसका जो साइज है दैट इज गोइंग टू बी इक्वल टूटू तो यहां से हम लीनियर सर्च एल्गोरिदम को कॉल करेंगे इसमें अपना एरे एंड अपना साइज हम पास करेंगे अब ये जो एल्गोरिदम है इसके लिए हम एक लूप चलाते हैं फॉर इंटी जर i = 0 i < साइज i + + कभी भी अगर हमारा एरे ऑफ़ i की वैल्यू हमारे टारगेट के इक्वल हो जाती है लीनियर सर्च के लिए हमें टारगेट भी सेंड करना पड़ेगा तो एक इंटी जर टारगेट भी बना लेते हैं व्हिच इज़ गोइंग टू बी इक्वल टू 8 और यहां पर हमारे पास एक और पैरामीटर आएगा टारगेट अगर एरे ऑफ़ i की वैल्यू टारगेट के इक्वल हो गई मतलब यहां पे हमें वैल्यू मिल गई वी हैव फाउंड द वैल्यू एंड यहां से वी आर गोइंग टू रिटर्न द इंडेक्स व्हिच इज इक्वल टू i पर यह पूरा लूप चल गया फिर भी हमें वैल्यू नहीं मिली तो उस केस में हम रिटर्न करने वाले हैं -1 -1 इंडिकेट्स दैट वी हैव नॉट फाउंड द वैल्यू तो जो भी आंसर रिटर्न होकर आएगा उसे लीनियर सर्च को जब हम कॉल करेंगे तो हम डायरेक्टली उसे सी आउट करा सकते हैं एंड ऑफ लाइन आल्सो इस साइज को अपडेट करके कर देते हैं सेवन क्योंकि साइज टू नहीं होगा साइज सेवन के इक्वल है अब जब हम इसे रन करेंगे तो हमारे पास इंडेक्स प्रिंट होकर आ जाएगा थ्री के इक्वल सिमिलरली लेट्स सपोज वी वांट टू सर्च फॉर दिस फाइव तो फाइव को जब हम सर्च करेंगे टारगेट को फाइव बना लेते हैं तो उस केस में वी आर गोइंग टू गेट इंडेक्स सिक्स व्हिच इज द लास्ट इंडेक्स ऑफ़ दिस एरे इफ वी ट्राई टू सर्च फॉर 50 इस केस में हमारे पास -1 प्रिंट होकर आएगा क्योंकि 50 एजिस्ट ही नहीं करता एरे के अंदर तो इस तरीके से हमारी लीनियर सर्च एल्गोरिदम वर्क करती है लीनियर सर्च का बेसिक फंडा ये कहता है कि हर एक इंडेक्स पर जाना है और अपने टारगेट को सर्च करने की कोशिश करनी है तो इसी पूरे लॉजिक के ऊपर हमारी पूरी एल्गोरिथम वर्क करती है आल्सो द स्टूडेंट्स आर ऑलरेडी फैमिलियर विद द कांसेप्ट ऑफ टाइम कंपलेक्सिटी टाइम कॉम्प्लेक्टेड आती है वैसे नहीं आती तो बाद में जाके हम पढ़ेंगे पर जिन स्टूडेंट्स ने ऑलरेडी की हुई है लीनियर सर्च एल्गोरिथम की टाइम कॉम्प्लेक्शन लीनियर टाइम कॉप्लेक्स टी होती है तभी इसको हम लीनियर सर्च कहते हैं जैसे हमारे पास लीनियर सर्च होता है बाद में जाकर हम एक और एरे के अंदर सर्च करने का तरीका पढ़ेंगे जिसे हम बाइनरी सर्च कहते हैं बाइनरी सर्च के टाइम कंपलेक्सिटी होती है बिकॉफ लॉग के इक्वल पर यह आगे की कॉम्प्लेक्शन सर्च को भी हम डिटेल में करने वाले हैं सो दिस वाज ऑल अबाउट लीनियर सर्च नेक्स्ट वी आर गोइंग टू टॉक अबाउट हाउ टू रिवर्स एन एरे तो वी हैव बीन गिवन दिस एरे और हमें इस एरे के सारे के सारे एलिमेंट्स को रिवर्स करना है यानी हमारा जो फाइनल एरे निकल कर आना चाहिए उसके अंदर सारे एलिमेंट्स इस तरीके से रिवर्स ऑर्डर में होनी चाहिए तो एलिमेंट्स अगर 427 8125 हो रहे थे तो अब वो रिवर्स ऑर्डर में 427 8125 हो रहे होंगे एंड ये जो चेंज है उसके लिए हमें एक सेकंड एरे कॉपी एरे नहीं बनाना हमें ओरिजिनल एरे के अंदर ही ये चेंज करना है मतलब ओरिजिनल एरे के ही एलिमेंट्स इस तरीके से रिवर्स होने चाहिए तो इस चीज को इस प्रॉब्लम को हम किस तरीके से सॉल्व करेंगे तो सॉल्व करने से पहले एक बार अपने एरे के जो सारे एलिमेंट्स हैं उन्हें हम विजुलाइज कर लेते हैं इन द फॉर्म ऑफ आवर एरे स्ट्रक्चर तो इस तरीके का हमारा एरे है जिसके सारे एलिमेंट्स को मुझे रिवर्स कर ना है अब रिवर्स करने के बहुत सारे डिफरेंट तरीके होते हैं जिसमें से वी आर गोइंग टू यूज़ समथिंग कॉल्ड टू पॉइंटर अप्रोच और टू पॉइंटर अप्रोच ऐसा नहीं है कि ऐसी चीज है जो हम सिर्फ इसी सवाल के लिए यूज़ करेंगे टू पॉइंटर अप्रोच एक काफी इंपॉर्टेंट अप्रोच है इसको हम एक एल्गोरिदम की तरह सोच सकते हैं जिसको हम आगे के चैप्टर्स के अंदर भी यूज़ करेंगे इनफैक्ट जो लॉजिक हम इस सवाल को सॉल्व करने के लिए यूज़ करेंगे वो बहुत इंपॉर्टेंट लॉजिक है उसी सेम लॉजिक से हम स्ट्रिंग्स के भी काफी सारे सवाल सॉल्व करेंगे आगे जब हम स्ट्रिंग्स वाला चैप्टर पढ़ेंगे एंड कई सारी एल्गोरिथम्स के अंदर सेम लॉजिक अप्लाई होता है इनफैक्ट बाइनरी सर्च एल्गोरिथम के अंदर भी ऑलमोस्ट सेम लॉजिक जो है अप्लाई होता है अब हमें चाहिए कि हमारा एरे जो है वो रिवर्स हो जाए रिवर्स एरे में ये जो स्टार्टिंग वाला एलिमेंट है ये बेसिकली लास्ट पोजीशन पर आ जाए और लास्ट पोजीशन वाला जो एलिमेंट है वो स्टार्टिंग पोजीशन पर आ जाए तो एरे रिवर्स होगा सिमिलरली ये जो सेकंड पोजीशन वाला एलिमेंट है ये सेकंड लास्ट पोजीशन पे आ जाए और सेकंड लास्ट वाला सेकंड पोजीशन पे आ जाए सिमिलरली जो थर्ड नंबर पर एलिमेंट है ये थर्ड लास्ट पोजीशन पे आ जाए और थर्ड लास्ट पोजीशन वाला यहां पर आ जाए तो क्यों ना हमारा जो फर्स्ट एंड लास्ट एलिमेंट है इन दोनों को हम स्वप कर दें स्वप करने का मतलब होता है एलिमेंट्स को एक दूसरे से बदल देना एक दूसरे से बदल देना मतलब यहां पर तो फाइव आ जाए और इस फाइव की जगह हमारे पास फोर आ जाए तो इसको हम स्वप ंग कहते हैं एंड दो वैल्यूज को स्वप करने के लिए हमारे पास एक स्वप फंक्शन होता है c+ के अंदर जिसके अंदर सबसे पहले हम अपनी वैल्यू वन पास करते हैं फिर अपनी वैल्यू टू पास करते हैं तो ये जो दोनों वैल्यू वैल्यूज हैं ये एक दूसरे से बदल जाती है तो हम क्यों ना फर्स्ट एंड लास्ट वैल्यू को स्वप कर दें उसके बाद हम क्या करें उसके बाद सेकंड एंड सेकंड लास्ट वैल्यू को हम स्वप करेंगे तो यहां पर हमारे पास टू आ जाएगा यहां पर भी हमारे पास टू आ जाएगा फिर हम थर्ड एंड थर्ड लास्ट वैल्यू को स्वप करेंगे तो यहां पर हमारे पास वन आ जाएगा यहां पर हमारे पास सेवन आ जाएगा एंड फिर हम यहां पर आएंगे सिमिलरली हम यहां पर आएंगे अब यहां पर क्योंकि एक ही वैल्यू है तो उसको हमें एस सट स्वप करने की जरूरत नहीं है और अगर हम स्वप करना भी चाहे तो एट को हटाकर हम यहां पर 8 ही लिख रहे होंगे तो यह हमारा फाइनल स्टेट आएगा आफ्टर स्वप द पेयर्स जिसमें अगर हम नोटिस करें तो हमारा पूरा का पूरा एरे जो है वो रिवर्स हो गया है 5218 724 सिमिलरली 5218 724 तो हमें बेसिकली क्या करना है हमारी ओवरऑल अप्रोच क्या है कैसे इस प्रॉब्लम को सॉल्व करेंगे हम दो पोजीशन से स्टार्ट करेंगे एक पोजीशन होने वाली है हमारी स्टार्टिंग पोजीशन एक पोजीशन होने वाली है हमारी एंडिंग पोजीशन ये जो स्टार्ट है इसको मुझे बार-बार एक से बढ़ाना है फिर ये सेकंड हो जाएगा फिर ये थर्ड पोजीशन पे आएगा फिर ये फोर्थ पोजीशन पे आएगा या फिर क्या हम कह सकते हैं कि ये जो मेरा स्टार्ट है इसे हम शुरू को तो कर देंगे जरो से ये बेसिकली स्टार्टिंग इंडेक्स है जो रो से स्टार्ट होगा उसके बाद ये स्टार्टिंग इंडेक्स अपडेट होकर वन हो जाएगा उसके बाद ये स्टार्टिंग इंडेक्स अपडेट होकर टू हो जाएगा तो स्टार्ट क्या हो सकता है स्टार्ट मेरा एक वेरिएबल हो सकता है इसी वेरिएबल को मैंने यहां पे क्या कह दिया है अपना एक पॉइंटर कह दिया है तो स्टार्ट की जो वैल्यू है वो हम शुरू करेंगे रो के साथ क्योंकि यह एक ऐसा वेरिएबल है जो रो से शुरू होगा और आगे-आगे बढ़ता जाएगा सिमिलरली यह जो मेरा लास्ट वेरिएबल है इसको हम कह देंगे एंड स्टार्ट और एंड बेसिकली हम पोजीशंस को ट्रैक करने के लिए यूज़ करेंगे और मेरा जो एंडिंग वेरिएबल है उसकी वैल्यू घटती चली जाएगी लास्ट में एंडिंग वैल्यू क्या है दिस इज इंडेक्स 0 1 2 3 4 5 एंड 6 तो एंडिंग वैल्यू सिक्स है उसके बाद नेक्स्ट आइट में एंडिंग वैल्यू फाइव हो जाएगी उसके बाद नेक्स्ट आइट में एंडिंग वैल्यू फोर हो जाएगी तो मेरा एंड जो है वो बेसिकली मेरे साइज -1 से स्टार्ट हो रहा है मतलब लास्ट इंडेक्स है हर बार मुझे स्टार्ट को तो करना है प्लस प्लस और मुझे एंड को क्या करना है एंड को करना है माइनस माइनस तभी तो स्टार्ट आगे की तरफ बढ़ेगा और एंड हमारा पीछे की तरफ बढ़ेगा तो अगर मेरे पास एक स्टार्ट है मेरे पास एक एंड है तो मुझे क्या करना है दोनों की वैल्यूज को स्वप करना है तो मुझे बार-बार स्वप करना है अपना एरे ऑफ स्टार्ट को विद एरे ऑफ एंड ये मेरा एक ऑपरेशन है जिसको मैं बार-बार परफॉर्म करना चाहती हूं स्पिंग वैल्यूज एट टू डिफरेंट पोजीशंस इसी को हम टू पॉइंटर अप्रोच कहते हैं टू पॉइंटर मतलब स्टार्ट एंड एंड हम दो पॉइंट्स ले रहे हैं एक को हम फॉरवर्ड चला रहे हैं दूसरे को हम बैकवर्ड चला रहे हैं और फिर हम कुछ काम कर रहे हैं काम क्या कर रहे हैं काम कर रहे हैं वैल्यूज को स्वप करने का पर ये काम हमें कब तक करना है कब तक वैल्यूज को स्वप करते रहना है हमने देखा कि हमारा स्टार्ट जब आगे-आगे जाएगा हमारा एंड जब पीछे-पीछे आएगा तो एक ऐसा पॉइंट आएगा जब स्टार्ट और एंड दोनों सेम पोजीशन पर होंगे मतलब एक तो हम एक इवन एरे का एग्जांपल ले ले इवन साइज के एरे का एग्जांपल एक ऑड साइज के एरे का एग्जांपल लेते हैं लेट्स सपोज मेरे पास एक एरे है जिसके अंदर चार वैल्यूज है मेरे पास एक एरे है जिसके अंदर तीन वैल्यूज है यहां पर यह मेरा स्टार्ट हो गया यह मेरा एंड हो गया नेक्स्ट आइट एशन में क्या होगा स्टार्ट यहां पर आ जाएगा एंड यहां पर आ जाएगा नेक्स्ट आइट एशन में क्या होगा स्टार्ट तो यहां पर आ जाएगा एंड एंड यहां पर आ जाएगा तो बेसिकली नेक्स्ट इटरेशन में स्टार्ट जो है वो मेरे एंड से भी आगे निकल जाएगा एक तो यह केस हो सकता है दूसरा केस हो सकता है यह मेरा स्टार्ट है ये मेरा एंड है नेक्स्ट आइट एशन में स्टार्ट भी यहीं आ जाएगा एंड भी यहीं आ जाएगा तो ऑड वाले केस में मुझे अपने स्वप को तब रोकना है जब मेरे स्टार्ट मेरे एंड के इक्वल हो जाए और इवन वाले केस में मुझे अपनी स्वप को तब रोकना है जब मेरा स्टार्ट मेरे एंड से ही बड़ा हो जाए अगर स्टार्ट ही एंड से बड़ा हो गया तब तो मुझे रिवर्स करने की जरूरत नहीं है क्योंकि अगर एंड यहां पर है स्टार्ट यहां पर और इनको मैं रिवर्स कर दूं मेरा अगर स्टार्ट यहां आ जाए मेरा अगर एंड यहां पर आ जाए और मैं वन और सेवन को स्वप कर दूं तब तो हम ओरिजिनल एरे की तरफ वापस जाएंगे तो हमें तब तक स्वप करनी है जब तक ये दोनों कंडीशंस सच नहीं हो जाती तो इन दोनों कंडीशंस का रिवर्स क्या होगा इन दोनों कंडीशंस को अगर मिक्स करें तो इट इज बेसिकली स्टार्ट ग्रेटर दन इक्वल टू एंड जब स्टार्ट ग्रेटर दन इक्वल टू एंड हो जाए तब हमें रुक जाना है तो लूप कब तक चलना चाहिए लूप तब तक चलना चाहिए वाइल माय स्टार्ट इज लेस देन माय एंड जब तक स्टार्ट की वैल्यू एंड से कम है तब तक ही हमारा लूप चलेगा उसके बाद नहीं चलेगा नहीं तो वैल्यूज दोबारा से ओरिजिनल में रिसेट होनी स्टार्ट हो जाएंगी तो यह हमारी ओवरऑल अप्रोच होने वाली है टू रिवर्स एन एरे इनफैक्ट इसे हम ड्राय रन भी कर सकते हैं ऑन एन एरे इस तरीके का अगर हमने एरे लिया जिसके अंदर कुछ एलिमेंट्स हैं 1 2 3 एंड 4 अब यहां से हमने अपने स्टार्ट को स्टार्ट किया विद वैल्यू ज़ीरो यहां से हमने अपने एंड को स्टार्ट किया विद वैल्यू इक्वल ट 3 तो यह हमारी स्टार्टिंग वैल्यूज हो गई अब हम चेक करेंगे क्या हमारा स्टार्ट लेस दन एंड है क्या ये स्टार्ट लेस दन एंड है डेफिनेटली है तो मुझे दोनों की वैल्यूज को सॉप कर देना है तो स्टार्ट पर वैल्यू थी वन तो अब एंड पर वन आ जाएगा स्टार्ट पर मेरे पास फोर आ जाएगा उसके बाद मुझे क्या करना है उसके बाद मुझे स्टार्ट को तो प्लस प्लस करना है एंड को माइनस माइनस करना है तो वही सेम काम हम लूप में भी लिख सकते हैं कि अपने स्टार्ट को तो कर देंगे हम प्लस प्लस एंड एंड को हम कर देंगे माइनस माइनस स्टार्ट को प्लस प्लस किया मतलब स्टार्ट की वैल्यू अब अपडेट होकर जीरो से हटकर वन हो जाएगी तो यहां पर जीरो को हटाकर हम वन कर देंगे एंड को माइनस माइनस किया मतलब एंड की वैल्यू अपडेट होकर अब थ्री से हटकर टू हो जाएगी अब दोबारा से लूप के अंदर जाके चेक करेंगे क्या स्टार्ट लेस दन एंड है स्टार्ट इज लेस दन एंड तो दोबारा से वैल्यूज को स्वप करेंगे इस बार वैल्यूज को स्वप किया तो यहां पर टू की जगह थ्री आ जाएगा यहां पर थ्री की जगह टू आ जाएगा उसके बाद दोबारा से मुझे स्टार्ट को प्लस प्लस करना है एंड को माइनस माइनस करना है स्टार्ट जैसे ही प्लस प्लस होगा स्टार्ट जाएगा यहां पर एंड जैसे ही माइनस माइनस होगा एंड आ जाएगा कुछ यहां पर तो स्टार्ट की जो वैल्यू है उसे अपडेट करके कर देते हैं टू तो ये मेरा स्टार्ट होगा जो इस इंडेक्स पर आएगा और मेरा एंड इस इंडेक्स पर आएगा जहां पर इसकी वैल्यू अपडेट होकर हो जाएगी वन के इक्वल तो स्टार्ट पहले वन था बढ़ के टू हो गया एंड पहले टू था घट के वन हो गया अब दोबारा चेक करेंगे लूप के अंदर क्या स्टार्ट लेस दन एंड है स्टार्ट अब लेस दन एंड नहीं है मतलब अब मुझे कोई ऑपरेशन परफॉर्म नहीं करना अब हम इस लूप से बाहर निकल जाएंगे और एट दी एंड जब हम अपनी वैल्यूज को देखेंगे हमने शुरुआत किया था 1 2 3 4 के साथ अब हमारे पास वैल्यूज है 4 3 21 तो इस तरीके से हम अपने किसी भी गिवन एरे को रिवर्स कर सकते हैं विद दिस पर्टिकुलर लॉजिक और ये लॉजिक होता है हमारा टू पॉइंटर अप्रोच का जिसमें हम इन दोनों पॉइंट्स को यूज करते हैं ये लॉजिक इंपॉर्टेंट है क्योंकि आगे आने वाले चैप्टर्स के अंदर इसी सेम लॉजिक पर बेस्ड हम कई सारी डिफरेंट एल्गोरिथम्स एंड कई सारे डिफरेंट सवाल सॉल्व करने वाले हैं तो एक बार इस लॉजिक के लिए अपना कोड लिखते हैं कोड के अंदर लेट्स क्रिएट अ फंक्शन वॉइड एंड इसे हम कह देते हैं रिवर्स एरे रिवर्स एरे के अंदर वी आर गोइंग टू पास आवर एरे अलोंग विद द साइज ऑफ द एरे तो टू पॉइंटर अप्रोच के लिए सबसे पहले हमें एक स्टार्ट बनाना पड़ेगा तो स्टार्ट इज गोइंग टू बी जीरो एंड एंड इज गोइंग टू बी साइज माइनस व हम एक लूप चलाएंगे जब तक हमारे स्टार्ट की वैल्यू लेस देन साइज है क्योंकि इक्वल टू हमें यहां पर लिखने की जरूरत नहीं है जब भी हम वाइ लूप्स को लिखते हैं हमेशा पता होना चाहिए कि किस केस में लेस दन लिखना है किस केस में लेस दन इक्वल टू लिखना है इक्वल टू क्यों नहीं लिखना इक्वल टू इसलिए नहीं लिखना क्योंकि स्टार्ट और एंड इक्वल सिर्फ उसी केस में होंगे जब हमारे एरे का साइज ऑड होगा एरे का साइज ऑड होने का मतलब है जब लेट्स सपोज मेरे एरे के अंदर तीन एलिमेंट्स होंगे तो पहले स्टार्ट यहां पर होगा एंड यहां पर होगा नेक्स्ट टाइम स्टार्ट यहां पर आ जाएगा और एंड भी यहीं पर आ जाएगा इसी इंडेक्स के ऊपर तो इस केस में तो दोनों इक्वल ही हो जाएंगे इस केस में तो हमें कोई चेंज करने की जरूरत है ही नहीं और जब स्टार्ट बड़ा हो गया एंड से तब भी हमें कोई चेंज करने की जरूरत नहीं है तो लूप सिर्फ तब तक चलेगा जब तक स्टार्ट लेस देन साइज है यहां पे अगर हम इक्वल टू लिख दें तो कोई एज सच एरर नहीं आएगा पर उसकी जरूरत नहीं है हमें लॉजिकल हमें हर बार क्या करना है हमें स्वप करना है एरे ऑफ स्टार्ट को विद एरे ऑफ एंड यहां पर स्टार्ट लेस देन एंड आएगा नॉट लेस दन साइज एंड स्टार्ट को हर बार हम कर देंगे प्लस प्लस एंड को हम हर बार कर देंगे माइनस माइनस तो ये हमारा पूरा लॉजिक हो गया टू रिवर्स एन एरे इस फंक्शन को जब हम कॉल करेंगे लेट्स कॉल रिवर्स एरे जिसके अंदर अपना एरे पास करेंगे एंड द साइज एंड फिर हम प्रिंट करवाने वाले हैं अपने एरे के एलिमेंट्स को फंक्शन को कॉल करने के बाद साइज आ प् प्स सी आउट एरे ऑफ आई विथ सम स्पेस एंड यहां पर सी आउट कर लेते हैं हम एंड ऑफ लाइन तो इस तरीके का हमारा पूरा का पूरा लॉजिक होने वाला है एंड इसे रन करेंगे तो हमारे पास जो एलिमेंट्स आए हैं वो रिवर्स ऑर्डर में आए हैं यह हमारा ओरिजिनल एरे था एलिमेंट्स रिवर्स ऑर्डर में अगर यहां पर लेट्स सपोज हमारे पास वैल्यूज होती 1 2 3 4 एंड 5 एरे का साइज हो जाता फाइव के इक्वल तो इस बार इसी का ऑपोजिट 5 4 3 21 हमारे पास प्रिंट हो कर आ था तो इस तरीके से किसी भी एरे को हम रिवर्स कर सकते हैं जिन स्टूडेंट्स को टाइम कॉम्प्लेक्टेड है फॉर दिस पर्टिकुलर लॉजिक द टाइम कॉम्प्लेक्शन व्हिच इज़ बिग ऑफ़ n तो बिग ऑफ़ n में हमारा ये कोड वर्क करता है तो फाइनली बात कर लेते हैं अबाउट द समरी इस चैप्टर के अंदर वैसे हमने सिर्फ एरी का इंट्रोडक्शन किया है कुछ बेसिक चीजें सीखी हैं आने वाले चैप्टर्स के अंदर एरे से रिलेटेड हम बहुत सारे सवाल सॉल्व करने वाले हैं और इनफैक्ट कुछ ऐसे सवाल हैं जो सिर्फ अरेज के अंदर नहीं आगे जाकर हम हैशियम डायनेमिक प्रोग्रामिंग पढ़ेंगे तब हम एरे से रिलेटेड सवाल सॉल्व करेंगे तो एरे जैसा डाटा स्ट्रक्चर है जो जरूरी नहीं है उसका सिर्फ एरे से ही रिलेटेड सवाल आएगा किसी और डाटा स्ट्रक्चर या किसी और एल्गोरिथम से मिलकर भी अरेज का सवाल आ सकता है तो ये चीज है जो हमें पता होनी चाहिए तो आज के चैप्टर के अंदर एक तो हमने एरे क्या होता है उसे कवर किया एरे को हम किस तरीके से क्रिएट कर सकते हैं किस तरीके से एरे के अंदर इंडेक्स का जो कांसेप्ट है वो वर्क करता है किस तरीके से एरे को हम इनपुट एंड आउटपुट कर सकते हैं हम लूप्स कैसे रन कर सकते हैं अरेज के ऊपर एरे के अंदर लूप की हेल्प से कैसे हम मिनिमम कैसे हम मैक्सिमम को फाइंड आउट कर सकते हैं आल्सो हमने आज लीनियर सर्च को कवर किया है एंड किस तरीके से हम एक एरे के एलिमेंट्स को रिवर्स कर सकते हैं ये सारी की सारी इंपॉर्टेंट चीजें हैं जिनका हमें पता होना चाहिए अब जब भी किसी भी कोडिंग प्लेटफॉर्म के ऊपर जाकर या जनरली कभी भी हमारे कोडिंग टेस्ट होते हैं ऑनलाइन असेसमेंट होते हैं ओए होते हैं कंपनीज के लिए तो वहां पर जब भी एरे का सवाल आएगा तो इंस्टेड ऑफ एरे जनरली सवालों के अंदर हमें वेक्टर यूज करना होता है वेक्टर्स आर वेरी सिमिलर टू एरे बिल्कुल एरे की तरह काम करते हैं वेक्टर के अंदर भी हम इंडेक्स को यूज करते हैं बिल्कुल एरे की तरह ऑलमोस्ट क्रिएट होते हैं बस एरे और वेक्टर के अंदर एक छोटा सा डिफरेंस होता है है तो कोडिंग प्लेटफॉर्म्स हो गए जैसे लीड कोड हो गया जैसे कोड फोर्सेस हो गया जैसे कोड शेफ हो गया इनके ऊपर सवालों को सॉल्व करने के लिए हमें वेक्टर्स का आना जरूरी है क्योंकि मेजॉरिटी जो सवाल है उनके अंदर वेक्टर्स यूज्ड होते हैं उनके अंदर एरे यूज़ नहीं होते पर उस सवाल को एरे का सवाल ही कहा जाता है बट उसके अंदर वेक्टर यूज़ होता है इसलिए प्लेटफॉर्म्स के ऊपर सवाल सॉल्व करने से पहले हमारा वेक्टर्स को सीखना बहुत जरूरी है तो इसीलिए नेक्स्ट चैप्टर के अंदर हम वेक्टर्स को सीखेंगे एंड उसके बाद हम सीखने वाले हैं कि किस तरीके से डिफरेंट डिफरेंट कोडिंग प्लेटफॉर्म्स के ऊपर जाकर हम अपने डिफरेंट डेटा स्ट्रक्चर्स एंड एल्गोरिथम्स के सवालों को सॉल्व कर सकते हैं ल्स एट द एंड ऑफ़ दिस चैप्टर आई वुड लाइक टू गिव यू सम होमवर्क प्रॉब्लम्स राइट अ फंक्शन टू कैलकुलेट सम एंड प्रोडक्ट ऑफ़ ऑल नंबर्स इन एन एरे यह बहुत सिंपल होने वाला है सिंपल सा लूप चलाना है राइट अ फंक्शन टू स्वप द मैक्सिमम एंड मिनिमम नंबर ऑफ़ एन एरे यह भी बहुत सिंपल होने वाला है राइट अ फंक्शन टू प्रिंट ऑल द यूनिक वैल्यूज इन एन एरे इस सवाल को सॉल्व करने के लिए आपको नेस्टेड लूप का यूज़ करना पड़ सकता है तो यह सवाल थोड़ा सा आपको डिफिकल्ट लग सकता है एज अ बिगनर तो यूनिक वैल्यूज कहने का मतलब है कि अगर हमें कोई एरे दिया होगा 1 2 3 1 2 3 एंड 4 तो इसमें अकेली यूनिक वैल्यू है फोर जिस वैल्यू को मुझे प्रिंट करवाना है अब कैसे चेक करेंगे कोई भी वैल्यू यूनिक है या नहीं तो बेसिकली अगर हम इस इंडेक्स के लिए चेक करना चाह रहे हैं तो इस इंडेक्स के लिए बचे हुए एरे पर हमें लूप चलाना पड़ेगा कि वन जो है बचे हुए एरे के अंदर वन दोबारा रिपीट तो नहीं करता सेम चीज फॉर टू टू के लिए हमें चेक करना पड़ेगा कि बचे हुए एरे में टू दोबारा रिपीट तो नहीं करता सिमिलरली फोर के लिए हम चेक करेंगे कि बचे हुए एरे में फोर दोबारा रिपीट तो नहीं करता फोर रिपीट नहीं करता मतलब ये यूनिक है मतलब इसको हम प्रिंट करवा देंगे जरूरी नहीं है एक ही यूनिक एलिमेंट हो एरे के अंदर मल्टीपल यूनिक वैल्यूज हो सकती हैं हमें सबको प्रिंट करवाना है यह जो लॉजिक है एज अ बिगनर थोड़ा सा हार्ड लगेगा पर फिर भी इसको सॉल्व करने का जरूर ट्राई करना है क्योंकि वो हमारी नेस्टेड लूप की एंड लॉजिकल अंडरस्टैंडिंग को इंप्रूव करेगा नेक्स्ट इज टू राइट अ फंक्शन टू प्रिंट इंटरसेक्शन ऑफ़ टू अरेज फॉर एग्जांपल मुझे एक एरे दिया है 1 2 3 45 एंड दूसरा एरे दिया है 6731 अब मुझे इंटरसेक्शन फाइंड आउट करना है मतलब दोनों अरेज के मुझे कॉमन एलिमेंट्स को प्रिंट करवाना है इसके लिए भी हमें एक नेस्टेड लूप को यूज करना पड़ेगा वैसे नेस्टेड लूप जो हम यूज़ कर रहे हैं ये सबसे ऑप्टिमाइज तरीका नहीं है इन प्रॉब्लम्स को सॉल्व करने का आगे जाके हम हैश टेबल के बारे में पढ़ेंगे तो हैश टेबल से इन दोनों सवालों को हम और आसान तरीके से सॉल्व कर सकते हैं पर अभी के लिए हमें पता नहीं हैश टेबल क्या होती है हैश क्या होती है तो अभी के लिए आपको नेस्टेड लूप यूज करना है दोनों के कॉमन एलिमेंट्स यानी इंटरसेक्शन क्या होंगे एक दोनों में कॉमन एलिमेंट होगा थ्री एक होगा वन तो हमारा जो फाइनल आउटपुट है उसके अंदर वन एंड थ्री प्रिंट होना चाहिए आपको नया एरे बनाने की जरूरत नहीं है सिंपली वन और थ्री को आपको प्रिंट करवाना है तो ये चार सवाल हैं व्हिच यू कैन सॉल्व एज पार्ट ऑफ योर होमवर्क प्रॉब्लम तो आई होप कि आज के चैप्टर से एरिज के बारे में काफी सारी चीजें हमें सीखने को मिली होगी जिनको हम नेक्स्ट क्लासेस के अंदर अप्लाई कर रहे होंगे हमने फाइनली अपने डाटा स्ट्रक्चर्स एंड एल्गोरिथम्स की जर्नी को शुरू कर दिया है हम चाहे तो इस चैप्टर एंड नेक्स्ट चैप्टर से अपने नोट्स को बनाना स्टार्ट कर सकते हैं तो आज आपने सक्सेसफुली अगर इस चैप्टर को कंप्लीट कर लिया है तो आप मुझे लिखकर बता सकते हैं कमेंट्स के अंदर यू कैन आल्सो शेयर योर प्रोग्रेस ऑन