এখানে আমরা পাইথনে দ্বিখন্ড দেখতে পাব। দ্বিখণ্ডটি বাইনারি অনুসন্ধানের জন্য ব্যবহৃত হয়। বাইনারি অনুসন্ধান কৌশলটি সাজানো তালিকায় উপাদানগুলি খুঁজে পেতে ব্যবহৃত হয়। দ্বিখণ্ডিত হল একটি লাইব্রেরি ফাংশন।
আমরা পাইথনে দ্বিখণ্ডিত ব্যবহার করে তিনটি ভিন্ন কাজ দেখতে পাব।
একটি উপাদানের প্রথম উপস্থিতি খোঁজা
bisect.bisect_left(a, x, lo =0, hi =len(a)) এই ফাংশনটি একটি সাজানো তালিকায় x এর সবচেয়ে বাম সন্নিবেশ বিন্দু ফেরাতে ব্যবহৃত হয়। এই ক্ষেত্রে শেষ দুটি পরামিতি ঐচ্ছিক। এই দুটি সাবলিস্টে অনুসন্ধান করতে ব্যবহৃত হয়৷
৷উদাহরণ
bisect import bisect_leftdef থেকে BinSearch(a, x):i =bisect_left(a, x) if i !=len(a) এবং a[i] ==x:return i else:return -1a =[2, 3, 4, 4, 5, 8, 12, 36, 36, 36, 85, 89, 96]x =int(4)pos =BinSearch(a, x) if pos ==-1:print(x, " অনুপস্থিত") অন্য:মুদ্রণ("প্রথম ঘটনা", x, "স্থানে আছে", অবস্থান)আউটপুট
4 এর প্রথম ঘটনাটি অবস্থান 2 এx এর চেয়ে ছোট সবচেয়ে বড় মান খোঁজা
bisect_left বিকল্পটি ব্যবহার করে, আমরা বড় মান পেতে পারি, যা x (কী) থেকে ছোট।
উদাহরণ
bisect import bisect_leftdef থেকে BinSearch(a, x):i =bisect_left(a, x) if i :return i-1 else:return -1a =[2, 3, 4, 4, 5, 8, 12, 36, 36, 36, 85, 89, 96]x =int(8)pos =BinSearch(a, x) if pos ==-1:print(x, "is absent") else:print("বড় মান, এর থেকে ছোট", x, "স্থানে আছে", pos)আউটপুট
বড় মান, 8 এর চেয়ে ছোট অবস্থান 4 এ রয়েছেx-এর সবচেয়ে সঠিক ঘটনা খুঁজে বের করা
bisect.bisect_right(a, x, lo =0, hi =len(a)) এই ফাংশনটি একটি সাজানো তালিকায় x এর সবচেয়ে সঠিক সন্নিবেশ বিন্দু ফেরাতে ব্যবহৃত হয়। এই ক্ষেত্রে শেষ দুটি পরামিতি ঐচ্ছিক। এই দুটি সাবলিস্টে অনুসন্ধান করতে ব্যবহৃত হয়৷
৷উদাহরণ
থেকে bisect import bisect_rightdef BinSearch(a, x):i =bisect_right(a, x) if i !=len(a) + 1 এবং a[i-1] ==x:ফেরত i-1 else:রিটার্ন -1a =[2, 3, 4, 4, 5, 8, 12, 36, 36, 36, 85, 89, 96]x =int(36)pos =BinSearch(a, x) if pos ==-1 :print(x, "is absent") else:print("Right most incessence of", x, " is at position", pos)আউটপুট
36-এর সবচেয়ে বেশি ঘটনা হল অবস্থান 9 এ