কম্পিউটার

পাইথন হিপ কিউ অ্যালগরিদম


হিপ ডেটা স্ট্রাকচারগুলি একটি অগ্রাধিকার সারির প্রতিনিধিত্ব করতে ব্যবহার করা যেতে পারে। পাইথনে এটি heapq মডিউলে উপলব্ধ। এখানে এটি একটি মিন-হিপ তৈরি করে। সুতরাং যখন অগ্রাধিকার 1 হয়, তখন এটি সর্বোচ্চ অগ্রাধিকারের প্রতিনিধিত্ব করে। যখন নতুন উপাদান ঢোকানো হয়, তখন গাদা গঠন আপডেট হয়।

এই মডিউলটি ব্যবহার করতে, আমাদের এটি −

ব্যবহার করে আমদানি করা উচিত
 heapq আমদানি করুন

কিছু গাদা সম্পর্কিত অপারেশন আছে. এগুলো হল -

পদ্ধতি heapq.heapify(পুনরাবৃত্ত)

এটি একটি পুনরাবৃত্তিযোগ্য ডেটাসেটকে হিপ ডেটা স্ট্রাকচারে রূপান্তর করতে ব্যবহৃত হয়।

পদ্ধতি heapq.heappush(হিপ, উপাদান)

এই পদ্ধতিটি উপাদানটিকে স্তূপে ঢোকাতে ব্যবহৃত হয়। এর পর পুরো হিপ স্ট্রাকচার রি-হিপ করুন।

পদ্ধতি heapq.heappop(হিপ)

এই পদ্ধতিটি হিপের উপরে থেকে উপাদানটিকে ফিরিয়ে আনতে এবং মুছে ফেলার জন্য এবং বাকি উপাদানগুলিতে heapify করতে ব্যবহৃত হয়৷

পদ্ধতি heapq.heappushpop(হিপ, উপাদান)

এই পদ্ধতিটি একটি বিবৃতিতে উপাদান সন্নিবেশ এবং পপ করতে ব্যবহৃত হয়..

পদ্ধতি heapq.heapreplace(স্তূপ, উপাদান)

এই পদ্ধতিটি একটি বিবৃতিতে উপাদান সন্নিবেশ এবং পপ করতে ব্যবহৃত হয়। এটি স্তূপের মূল থেকে উপাদানটিকে সরিয়ে দেয়, তারপরে উপাদানটিকে স্তূপে সন্নিবেশ করান।

পদ্ধতি heapq.nlargest(n, iterable, key=None)

এই পদ্ধতিটি হিপ থেকে n বৃহত্তম উপাদান ফেরত দিতে ব্যবহৃত হয়।

পদ্ধতি heapq.nsmallest(n, পুনরাবৃত্তিযোগ্য, key=None)

এই পদ্ধতিটি হিপ থেকে n ক্ষুদ্রতম উপাদান ফেরত দিতে ব্যবহৃত হয়।

উদাহরণ কোড

 heapqmy_list =[58, 41, 12, 17, 89, 65, 23, 20, 10, 16, 17, 19] heapq.heapify(my_list)print(my_list)heapq.heappush(my_list, 7)মুদ্রণ (my_list)print('Popped Element:' + str(heapq.heappop(my_list)))print(my_list)new_iter =list()new_iter =heapq.nlargest(4, my_list)print(new_iter)

আউটপুট

<প্রে>[10, 16, 12, 17, 17, 19, 23, 20, 41, 89, 58, 65][7, 16, 10, 17, 17, 12, 23, 20, 41, 89, 58 , 65, 19]পপড উপাদান:7[10, 16, 12, 17, 17, 19, 23, 20, 41, 89, 58, 65][89, 65, 58, 41]
  1. পাইথন অগ্রাধিকার সারি:একটি গাইড

  2. হিপ চেক করার প্রোগ্রামটি পাইথনে সর্বোচ্চ হিপ তৈরি করছে নাকি নয়

  3. পাইথনে গড় শিফট অ্যালগরিদম প্রয়োগ করুন

  4. হিপ সাজানোর জন্য পাইথন প্রোগ্রাম