लंबी सूची में प्रत्येक प्रविष्टि के बाद सॉर्ट संचालन करना प्रोसेसर द्वारा खपत किए गए समय के मामले में महंगा हो सकता है। द्विभाजित मॉड्यूल सुनिश्चित करता है कि प्रविष्टि के बाद सूची स्वचालित रूप से क्रमबद्ध रहती है। इस उद्देश्य के लिए, यह द्विभाजन एल्गोरिथ्म का उपयोग करता है। मॉड्यूल में निम्नलिखित कार्य हैं:
bisect_left()
यह विधि क्रमबद्ध क्रम को बनाए रखने के लिए सूची में दिए गए तत्व के लिए सम्मिलन बिंदु का पता लगाती है। यदि यह सूची में पहले से मौजूद है, तो सम्मिलन बिंदु किसी भी मौजूदा प्रविष्टि से पहले (बाईं ओर) होगा। वापसी मान का उपयोग list.insert()
. के पहले पैरामीटर के रूप में किया जा सकता हैbisect_right()
यह विधि bisect_left() के समान है, लेकिन एक सम्मिलन बिंदु देता है जो x की किसी भी मौजूदा प्रविष्टि के बाद (दाईं ओर) आता है।
bisect.insort_left()
यह विधि दिए गए मान को क्रमबद्ध क्रम में सम्मिलित करती है। यह a.insert(bisect.bisect_left(a, x, lo, hi), x)
के बराबर हैbisect.insort_right()
bisect.insort()
बोथे विधियाँ insort_left() के समान हैं, लेकिन समान मान की किसी भी मौजूदा प्रविष्टि के बाद सूची में दिए गए मान को सम्मिलित करना।
उदाहरण
>>> nums = [45,21,34,87,56,12,5,98,30,63] >>> nums.sort() >>> nums [5, 12, 21, 30, 34, 45, 56, 63, 87, 98] >>> import bisect >>> p = bisect.bisect_left(nums,50) >>> p 6 >>> nums.insert(p,50) >>> nums [5, 12, 21, 30, 34, 45, 50, 56, 63, 87, 98] >>> bisect.insort(nums, 29) >>> nums [5, 12, 21, 29, 30, 34, 45, 50, 56, 63, 87, 98]