Advertisement
rishu110067

Untitled

Feb 18th, 2022
654
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.12 KB | None | 0 0
  1. def kth_largest_in_an_array(numbers, k):
  2.    
  3.     def helper(numbers,start,end,index):
  4.        
  5.         pivot=random.randint(start,end)
  6.         numbers[start],numbers[pivot]=numbers[pivot],numbers[start]
  7.  
  8.         left = start
  9.         mid = start
  10.         right = end
  11.  
  12.         while mid <= right:
  13.             if numbers[mid] < numbers[start]:
  14.                 left = left + 1
  15.                 numbers[left], numbers[mid] = numbers[mid], numbers[left]
  16.                 mid = mid+1
  17.             elif numbers[mid] == numbers[start]:
  18.                 mid = mid+1
  19.             else:
  20.                 numbers[mid], numbers[right] = numbers[right], numbers[mid]
  21.                 right = right-1
  22.                
  23.         numbers[start], numbers[left] = numbers[left], numbers[start]
  24.        
  25.         if left <= index and index <= right:
  26.             return
  27.         elif index < left:
  28.             helper(numbers,start,left-1,index)
  29.         elif index > right:
  30.             helper(numbers,right+1,end,index)
  31.            
  32.    
  33.     helper(numbers,0,len(numbers)-1,len(numbers)-k)  
  34.     result = numbers[len(numbers)-k]
  35.     return result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement