কম্পিউটার টিউটোরিয়াল

পাইথনে Bisect অ্যালগরিদম ফাংশনসমূহ

এই মডিউলটি একটি লিস্টকে সর্টেড অর্ডারে রেখে নতুন উপাদান ইনসার্ট করার পর সর্ট করার প্রয়োজন নেই। আমরা দুটি ফাংশনে ফোকাস করব: insort_left এবং insort_right।

insort_left

এই ফাংশনটি নম্বরটি ইনসার্ট করার পর সর্টেড লিস্ট রিটার্ন করে। যদি উপাদানটি লিস্টে ইতিমধ্যে থাকে, তবে তা বামপাশে সম্ভাব্য পজিশনে ইনসার্ট হয়। এই ফাংশন ৪টি আর্গুমেন্ট নেয়: লিস্ট, ইনসার্ট করার নম্বর, লিস্টে শুরুতে কোন পজিশন থেকে বিবেচনা করবে, এবং শেষে কোন পজিশন পর্যন্ত বিবেচনা করবে। ডিফল্ট ভ্যালু ০ এবং লিস্টের লেনথ।

insort_right

এটি insort_left-এর মতোই, কিন্তু নতুন উপাদানটি বিদ্যমান এন্ট্রি-গুলোর পরে ইনসার্ট হয় স্ট্রিক্ট সর্ট অর্ডার রক্ষা না করে।

সিনট্যাক্স
bisect.insort_left(a, x, lo=0, hi=len(a))
bisect.insort_right(a, x, lo=0, hi=len(a))
# a = given sequence, x = number to be inserted
উদাহরণ

নিচের উদাহরণে আমরা একটি লিস্ট নেওয়া এবং সেটিতে bisect.insort_left এবং insort_right প্রয়োগ করা দেখানো হয়েছে।

import bisect
listA = [11, 13, 23, 7, 13, 15]
print("Given list:", listA)
bisect.insort_left(listA, 14)
print("Bisect left:\n", listA)
listB = [11, 13, 23, 7, 13, 15]
print("Given list:", listB)
bisect.insort_right(listB, 14, 0, 4)
print("Bisect right:\n", listB)
আউটপুট

উপরোক্ত কোড রান করলে নিচের ফলাফল পাওয়া যাবে:

Given list: [11, 13, 23, 7, 13, 15]
Bisect left:  [11, 13, 23, 7, 13, 14, 15]
Given list: [11, 13, 23, 7, 13, 15]
Bisect right:  [11, 13, 14, 23, 7, 13, 15]
  1. পাইথন operator মডিউল: ফাংশনাল আকারে অপারেটর ব্যবহার

  2. পাইথনে দশমিক ফাংশনসমূহ

  3. পাইথন অ্যারে বাইসেকশন অ্যালগরিদম

  4. পাইথন মডিউলের সব ফাংশন লিস্ট করা