lodha1503

Untitled

Feb 23rd, 2022 (edited)
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.86 KB | None | 0 0
  1. def check_for_min_heap(arr):
  2.     return True
  3.    
  4.    
  5.    
  6. def delete_min_element(arr):
  7.     if (check_for_min_heap(arr)==False):
  8.         print("Heap does not exist")
  9.     else:
  10.         arr[0]=arr[len(arr)-1]
  11.         for i in range(1,len(arr)-1):
  12.             ind=i
  13.             while(arr[ind]<arr[(ind-1)//2] and ind>=0 and ((ind-1)//2)>=0):
  14.                 temp=arr[(ind-1)//2]
  15.                 arr[(ind-1)//2]=arr[ind]
  16.                 arr[ind]=temp
  17.                 ind=(ind-1)//2
  18.         for i in range(0,len(arr)-1):
  19.             print(arr[i],end=" ")
  20.         print()  
  21.        
  22.        
  23. def delete_particular_element(arr,m):
  24.     if (check_for_min_heap(arr)==False):
  25.         print("Heap does not exist")
  26.     elif (arr.index(m)==-1):
  27.         print("Integer not found")
  28.     else:
  29.         d=arr.index(m)
  30.         arr[d]=arr[len(arr)-1]
  31.        
  32.        
  33.         for i in range(1,len(arr)-1):
  34.             ind=i
  35.             while(arr[ind]<arr[(ind-1)//2] and ind>=0 and ((ind-1)//2)>=0):
  36.                 temp=arr[(ind-1)//2]
  37.                 arr[(ind-1)//2]=arr[ind]
  38.                 arr[ind]=temp
  39.                 ind=(ind-1)//2
  40.        
  41.         for i in range(0,len(arr)-1):
  42.             print(arr[i],end=" ")
  43.         print()
  44.        
  45.  
  46. def Insert_an_element(arr,element):
  47.     ind=len(arr)
  48.    
  49.     if (check_for_min_heap(arr)==False):
  50.         print("Heap does not exist")
  51.     else:
  52.         arr.append(element)
  53.         while(arr[ind]<arr[(ind-1)//2] and ind>=0 and ((ind-1)//2)>=0):
  54.             temp=arr[(ind-1)//2]
  55.             arr[(ind-1)//2]=arr[ind]
  56.             arr[ind]=temp
  57.             ind=(ind-1)//2
  58.  
  59.         for i in range(0,len(arr)):
  60.             print(arr[i],end=" ")
  61.         print()
  62.        
  63.        
  64. def heap_sort(arr):
  65.     bound=len(arr)-1
  66.    
  67.     while(bound!=0):
  68.         temp=arr[0]
  69.         arr[0]=arr[bound]
  70.         arr[bound]=temp
  71.         for i in range(0,bound):
  72.             ind=i
  73.             while(arr[ind]<arr[(ind-1)//2] and ind>=0 and ((ind-1)//2)>=0):
  74.                 temp=arr[(ind-1)//2]
  75.                 arr[(ind-1)//2]=arr[ind]
  76.                 arr[ind]=temp
  77.                 ind=(ind-1)//2
  78.         bound=bound-1  
  79.     for i in range(0,len(arr)):
  80.         print(arr[i],end=" ")
  81.     print()    
  82.            
  83.            
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.        
  91.        
  92. N=int(input())
  93. arr=list(map(int,input().split(" ")))
  94.  
  95. for i in range(1,N):
  96.     ind=i
  97.     while(arr[ind]<arr[(ind-1)//2] and ind>=0 and ((ind-1)//2)>=0):
  98.         temp=arr[(ind-1)//2]
  99.         arr[(ind-1)//2]=arr[ind]
  100.         arr[ind]=temp
  101.         ind=(ind-1)//2      
  102. for i in range(0,len(arr)):
  103.     print(arr[i],end=" ")
  104. print()
  105.  
  106. element=int(input("Enter number to be inserted in the heap "))
  107. Insert_an_element(arr,element)
  108.  
  109. delete_min_element(arr)        
  110.  
  111. m=int(input("Delete particular element "))
  112. delete_particular_element(arr,m)
  113.  
  114. heap_sort(arr)
  115.  
Add Comment
Please, Sign In to add comment