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

पायथन में रैखिक समय में kth सबसे छोटा तत्व खोजने का कार्यक्रम

मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, हमारे पास एक और मूल्य k भी है, हमें सूची में kth (0 से शुरू) सबसे छोटा तत्व खोजना होगा। हमें इस समस्या को औसतन O(n) समय में हल करना है।

इसलिए, यदि इनपुट संख्या =[6, 4, 9, 3, 1] k =2 की तरह है, तो आउटपुट 4 होगा, जैसा कि सूची को छांटने के बाद [1, 3, 4, 6, 9] जैसा होगा। , k वां सबसे छोटा तत्व 4 है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • maxHeap :=एक नया खाली ढेर
  • 0 से k की सीमा में i के लिए, करें
    • अंक डालें[i] maxHeap में
  • i के लिए k + 1 से लेकर अंकों के आकार -1 तक के लिए
    • यदि अंक [i]> अधिकतम ढेर [0], तो
      • maxHeap से शीर्ष हटाएं
      • अंक डालें[i] maxHeap में
  • मैक्सहीप लौटाएं[0]

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

from heapq import heappop, heappush
def solve(nums, k):
   maxHeap = []
   for i in range(k + 1):
      heappush(maxHeap, -nums[i])
   for i in range(k + 1, len(nums)):
      if nums[i] < -maxHeap[0]:
         heappop(maxHeap)
         heappush(maxHeap, -nums[i])
   return -maxHeap[0]

nums = [6, 4, 9, 3, 1]
k = 2
print(solve(nums, k))

इनपुट

[6, 4, 9, 3, 1], 2

आउटपुट

4

  1. एक सरणी में सबसे बड़ा तत्व खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक इनपुट के रूप में एक सरणी को देखते हुए, हमें सरणी में सबसे बड़ा तत्व खोजने की जरूरत है। दृष्टिकोण हम अधिकतम को पहले तत्व के रूप में प्रारंभ करते हैं। इसके बाद, हम दिए गए सरणी को दूसरे तत्व से अ

  1. पायथन प्रोग्राम में रैखिक खोज

    इस लेख में, हम लीनियर सर्च और पायथन 3.x में इसके कार्यान्वयन के बारे में जानेंगे। या पहले। एल्गोरिदम दिए गए एआर के सबसे बाएं तत्व से शुरू करें [] और एक-एक करके तत्व एक्स की तुलना एआर के प्रत्येक तत्व के साथ करें [] यदि x किसी भी तत्व से मेल खाता है, तो अनुक्रमणिका मान लौटाएँ। अगर x arr[] म

  1. रैखिक खोज के लिए पायथन कार्यक्रम

    इस लेख में, हम लीनियर सर्च और पायथन 3.x में इसके कार्यान्वयन के बारे में जानेंगे। या पहले। एल्गोरिदम Start from the leftmost element of given arr[] and one by one compare element x with each element of arr[] If x matches with any of the element, return the index value. If x doesn’t match with