Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def get_max_not_at_idx(a, idx, n):
- max_idx = 0
- for i in range(1, n+ 1):
- if(i == idx):
- pass
- elif (a[i] > a[max_idx]):
- max_idx = i
- return max_idx
- # generic swapper
- def swap(a, i, j):
- a[i], a[j] = a[j], a[i]
- def select_rec(a, i):
- if(i < 2):
- return
- n = i
- m1 = get_max_not_at_idx(a, 0, n)
- m2 = get_max_not_at_idx(a, m1, n)
- if(m2 == i and m1 == i - 1):
- swap(a, m1, m2)
- elif(i == m2):
- swap(a, m2, i-1)
- swap(a, m1, i)
- else:
- swap(a, m1, i)
- swap(a, m2, i - 1)
- select_rec(a, n - 2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement