- Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathkthLargest.py
30 lines (24 loc) · 589 Bytes
/
kthLargest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#kth largest element means (length - k + 1)th smallest
print"Enter list of numbers : "
array= [int(x) forxinraw_input().split(" ")]
print"Enter k :"
k=input()
defpartition(arr,l,h) :
pivot=arr[l]
j=l-1
i=l
foriinrange(l,h+1):
ifarr[i] <=pivot :
j+=1
arr[i],arr[j] =arr[j],arr[i]
arr[l],arr[j] =arr[j],arr[l]
returnj
defkthLargest(arr,l,h,k):
m=partition(arr,l,h)
ifm==k-1:
returnarr[m]
elifm<k-1:
returnkthLargest(arr,m+1,h,k)
else :
returnkthLargest(arr,l,m-1,k)
printkthLargest(array,0,len(array)-1,len(array)-k+1)