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

2D सरणी में k'th सबसे छोटा तत्व खोजने के लिए पायथन प्रोग्राम

एक n×n उपयोगकर्ता इनपुट पूर्णांक मैट्रिक्स दिया गया है और k का मान दिया गया है। हमारा कार्य 2D सरणी में k'th सबसे छोटे तत्व का पता लगाना है। यहाँ हम पाइथॉन में हेपैक मड्यूल.हीप क्यू (या हीपक) का उपयोग करते हैं। पायथन में, यह "heapq" मॉड्यूल का उपयोग करके उपलब्ध है। पायथन में इस मॉड्यूल की तकनीक यह है कि हर बार हीप तत्व का सबसे छोटा (न्यूनतम ढेर) पॉप किया जाता है। डेटा फ्रेम या श्रृंखला से कम से कम मान प्राप्त करने के लिए सबसे छोटी () विधि का उपयोग किया जाता है।

उदाहरण

Input Array is::
10 20 20 40 
15 45 40 30 
32 33 30 50 
12 78 99 78 
The value of k is 10
10 th smallest element is 40

एल्गोरिदम

Step 1: First create a 2D array.
Step 2: Then assign first row to a variable and convert it into min heap.
Step 3: Then traverse remaining rows and push elements in min heap.
Step 4: Now use nsmallest(k, iterable) method of heapq module and get list of first k smallest element, nsmallest(k,list) method returns first k smallest element now print last element of that list.

उदाहरण कोड

# python program to find K'th smallest element in  
# a 2D array in Python 
import heapq 
  
def smallestele(A): 
   assignval = A[0]  
   heapq.heapify(assignval) 
  
   for i in A[1:]: 
      for j in i: 
         heapq.heappush(assignval,j) 
   mini = heapq.nsmallest(k,assignval) 
   print (k,"th smallest element is ",mini[-1]) 
  
# Driver program 
if __name__ == "__main__":
   A=[]
n=int(input("Enter N for N x N matrix : "))      #3 here
#use list for storing 2D array
#get the user input and store it in list (here IN : 1 to 9)
print("Enter the element ::>")
for i in range(n): 
   row=[]                                        #temporary list to store the row
   for j in range(n): 
      row.append(int(input()))                   #add the input to row list
   A.append(row)                                 #add the row to the list

print(A)
# [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

#Display the 2D array
print("Display Array In Matrix Form")
for i in range(n):
   for j in range(n):
      print(A[i][j], end=" ")
   print()                                       #new line
k = int(input("Enter the kth position ::>"))
smallestele(A) 

आउटपुट

Enter N for N x N matrix : 4
Enter the element ::>
10
20
20
40
15
45
40
30
32
33
30
50
12
78
99
78
[[10, 20, 20, 40], [15, 45, 40, 30], [32, 33, 30, 50], [12, 78, 99, 78]]
Display Array In Matrix Form
10 20 20 40 
15 45 40 30 
32 33 30 50 
12 78 99 78 
Enter the kth position ::>10
10 th smallest element is 40

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

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

  1. सरणी का योग खोजने के लिए पायथन कार्यक्रम

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

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

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