Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन हीप क्यू एल्गोरिदम

हीप डेटा स्ट्रक्चर्स का उपयोग प्रायोरिटी क्यू को प्रस्तुत करने के लिए किया जा सकता है। पायथन में यह heapq मॉड्यूल में उपलब्ध है। यहां यह एक मिन-हीप बनाता है। इसलिए जब प्रायोरिटी 1 होती है, तो यह उच्चतम प्रायोरिटी को दर्शाता है। जब नए एलिमेंट्स डाले जाते हैं, तो हीप स्ट्रक्चर अपडेट होता है।

इस मॉड्यूल का उपयोग करने के लिए, हमें इसे आयात करना चाहिए।

import heapq

कुछ हीप संबंधित ऑपरेशन्स हैं। ये हैं:

मेथड heapq.heapify(iterable)

इसका उपयोग इटरेबल डेटासेट को हीप डेटा स्ट्रक्चर में बदलने के लिए किया जाता है।

मेथड heapq.heappush(heap, element)

यह मेथड एलिमेंट को हीप में डालने के लिए उपयोग किया जाता है। उसके बाद पूरे हीप स्ट्रक्चर को री-हीप करें।

मेथड heapq.heappop(heap)

यह मेथड हीप के टॉप से एलिमेंट को लौटाने और हटाने के लिए उपयोग किया जाता है और शेष एलिमेंट्स पर हीपिफाई करता है।

मेथड heapq.heappushpop(heap, element)

यह मेथड एक स्टेटमेंट में एलिमेंट को डालने और पॉप करने के लिए उपयोग किया जाता है।

मेथड heapq.heapreplace(heap, element)

यह मेथड एक स्टेटमेंट में एलिमेंट को डालने और पॉप करने के लिए उपयोग किया जाता है। यह हीप के रूट से एलिमेंट को हटाता है, फिर एलिमेंट को हीप में डालता है।

मेथड heapq.nlargest(n, iterable, key=None)

यह मेथड हीप से n सबसे बड़े एलिमेंट लौटाने के लिए उपयोग किया जाता है।

मेथड heapq.nsmallest(n, iterable, key=None)

यह मेथड हीप से n सबसे छोटे एलिमेंट लौटाने के लिए उपयोग किया जाता है।

उदाहरण कोड

import heapq

my_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)
print(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]
Popped Element: 7
[10, 16, 12, 17, 17, 19, 23, 20, 41, 89, 58, 65]
[89, 65, 58, 41]
  1. पायथन में हीप मैक्स हीप बना रहा है या नहीं जांचने का प्रोग्राम पायथन में हीप मैक्स हीप बना रहा है या नहीं जांचने का प्रोग्राम

    मान लीजिए हमारे पास एक सूची है जो हीप ट्री का प्रतिनिधित्व करती है। जैसा कि हम जानते हैं हीप एक पूर्ण बाइनरी ट्री है। हमें जांचना है कि तत्व मैक्स हीप बना रहे हैं या नहीं। जैसा कि हम जानते हैं मैक्स हीप के लिए प्रत्येक तत्व अपने दोनों बच्चों से बड़ा होता है। इसलिए, यदि इनपुट है nums = [8, 6, 4, 2, 0

  1. पायथन में मीन शिफ्ट एल्गोरिदम को लागू करना पायथन में मीन शिफ्ट एल्गोरिदम को लागू करना

    मशीन लर्निंग में कई प्रकार के क्लस्टरिंग एल्गोरिदम होते हैं। इन एल्गोरिदम को पायथन में लागू किया जा सकता है। इस लेख में, आइए मीन-शिफ्ट एल्गोरिदम पर चर्चा करें और इसे पायथन का उपयोग करके लागू करें। यह एक क्लस्टरिंग एल्गोरिदम है जिसका उपयोग अनसुपरवाइज़्ड लर्निंग मेथड के रूप में किया जाता है। इस एल्गो

  1. पायथन प्रोग्राम: हीप सॉर्ट पायथन प्रोग्राम: हीप सॉर्ट

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक सरणी दी गई है, हमें हीपसॉर्ट की अवधारणा का उपयोग करके इसे क्रमबद्ध करना है। यहां हम अधिकतम तत्व को अंत में रखते हैं। यह तब तक दोहराया जाता है जब तक सरणी क्रमबद्ध नहीं हो जाती। उदाहरण # हीपिफाई def heapify(arr, n, i): la