কম্পিউটার

পাইথনে বাইনারি অনুসন্ধান (দ্বিভাগ)


এখানে আমরা পাইথনে দ্বিখন্ড দেখতে পাব। দ্বিখণ্ডটি বাইনারি অনুসন্ধানের জন্য ব্যবহৃত হয়। বাইনারি অনুসন্ধান কৌশলটি সাজানো তালিকায় উপাদানগুলি খুঁজে পেতে ব্যবহৃত হয়। দ্বিখণ্ডিত হল একটি লাইব্রেরি ফাংশন।

আমরা পাইথনে দ্বিখণ্ডিত ব্যবহার করে তিনটি ভিন্ন কাজ দেখতে পাব।

একটি উপাদানের প্রথম উপস্থিতি খোঁজা

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 এ

  1. পাইথনে প্রদত্ত পোস্টঅর্ডার থেকে একটি বাইনারি অনুসন্ধান গাছ তৈরি করুন

  2. পাইথনে প্রিঅর্ডার ট্রাভার্সাল থেকে বাইনারি সার্চ ট্রি তৈরি করুন

  3. পাইথনে একটি বাইনারি অনুসন্ধান গাছের সর্বনিম্ন সাধারণ পূর্বপুরুষ

  4. পাইথনে বাইনারি সার্চ ট্রিতে সাজানো অ্যারেকে রূপান্তর করুন