bisect_left और bisect_right
sorted list में insertion points खोजें
bisect_left और bisect_right, CoddyKit पर कोडिंग साक्षात्कार की तैयारी का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह कोडिंग साक्षात्कार की तैयारी सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
बिना अनावश्यक ढाँचे के खोजें
Python का bisect मॉड्यूल क्रमबद्ध सूचियों के लिए परीक्षित द्विआधारी खोज देता है। स्वयं लूप लिखने की आवश्यकता न होने से एक-से-अधिक वाली त्रुटियों को ढूँढ़ने की जरूरत नहीं पड़ती।
import bisectबूलियन नहीं, प्रविष्टि स्थान
सही या गलत लौटाने के बजाय, bisect वह अनुक्रमांक लौटाता है जहाँ कोई मान सूची को क्रमबद्ध बनाए रखने के लिए डाला जा सकता है। इसी अनुक्रमांक में असली शक्ति है।
a = [1, 3, 3, 3, 7]bisect_left बाईं ओर झुकता है
bisect_left वह पहला स्थान लौटाता है जहाँ मान रखा जा सकता है। डुप्लिकेट होने पर यह सभी समान तत्वों से पहले आता है, कभी बाद में नहीं।
bisect.bisect_left(a, 3) # 1bisect_right दाईं ओर झुकता है
bisect_right अंतिम समान तत्व के ठीक बाद का स्थान लौटाता है। डुप्लिकेट होने पर यह हर मिलते-जुलते मान के बाद आता है।
bisect.bisect_right(a, 3) # 4समान तत्वों की संख्या गिनें
किसी मान के डुप्लिकेट गिनने के लिए दोनों को घटाएँ और O(log n) में परिणाम पाएँ। right में से left घटाने पर उसकी उपस्थिति की ठीक संख्या मिलती है।
lo = bisect.bisect_left(a, 3)
hi = bisect.bisect_right(a, 3)
print(hi - lo) # 3क्या मान मौजूद था
सदस्यता जाँचने के लिए bisect_left से i प्राप्त करें और पुष्टि करें कि a[i], लक्ष्य के बराबर है। पहले यह सुनिश्चित करें कि i सूची की लंबाई तक न पहुँच गया हो।
i = bisect.bisect_left(a, x)
found = i < len(a) and a[i] == xX से कम-से-कम पहला तत्व
bisect_left x से बड़ा या उसके बराबर पहला तत्व भी खोजता है। यह अनुक्रमांक सीधे आपकी निम्न-सीमा का उत्तर देता है।
i = bisect.bisect_left(a, x) # first >= xसख्ती से बड़ा पहला तत्व
क्या आपको x से सख्ती से बड़ा पहला तत्व चाहिए? bisect_right वह अनुक्रमांक सीधे देता है, जो उच्च-सीमा का समकक्ष है।
i = bisect.bisect_right(a, x) # first > xडालें और क्रमबद्ध बनाए रखें
insort एक ही कॉल में स्थान खोजकर तत्व डाल देता है और सूची को क्रमबद्ध बनाए रखता है। चलते-चलते क्रमबद्ध संरचना बनाते समय यह उपयोगी है।
bisect.insort(a, 5) # a stays sortedकिसी सीमित खंड में खोजें
वैकल्पिक lo और hi तर्क खोज को किसी खंड तक सीमित करते हैं। जब आपको केवल किसी उप-परास की चिंता हो, तो इससे प्रतिलिपि बनाने से बचा जा सकता है।
bisect.bisect_left(a, x, 2, 5)सहायक सूची के माध्यम से कुंजियाँ
bisect पूरे तत्वों की तुलना करता है, इसलिए किसी क्षेत्र के आधार पर खोजने के लिए केवल उन कुंजियों की समानांतर सूची बनाएँ और उसी पर bisect चलाएँ।
keys = [p[0] for p in pairs]
i = bisect.bisect_left(keys, target)त्वरित जाँच
डुप्लिकेट और प्रविष्टि स्थानों के बारे में तर्क करें।
पुनरावलोकन: Bisect में दक्षता
अब आप प्रविष्टि स्थान खोज सकते हैं, डुप्लिकेट गिन सकते हैं और लघुगणकीय समय में निम्न तथा उच्च सीमाएँ ढूँढ़ सकते हैं। लूप लिखने से पहले bisect का उपयोग करें। ✨
एआई शिक्षक के साथ कोडिंग साक्षात्कार की तैयारी सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 90
- पाठ
- 360
अक्सर पूछे जाने वाले प्रश्न
क्या “bisect_left और bisect_right” पाठ निःशुल्क है?
हाँ—“bisect_left और bisect_right” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“bisect_left और bisect_right” में मैं क्या सीखूँगा?
sorted list में insertion points खोजें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ कोडिंग साक्षात्कार की तैयारी का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या कोडिंग साक्षात्कार की तैयारी शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर कोडिंग साक्षात्कार की तैयारी शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“bisect_left और bisect_right” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस कोडिंग साक्षात्कार की तैयारी पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर कोडिंग साक्षात्कार की तैयारी पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Bugs के बिना Classic Binary Search
- bisect_left और bisect_right
- First True: Predicate Binary Search
- Answer पर Binary Search