How to rearrange a list such that every odd index element is greater than its previous in Python

1 Answer

0 votes
def rearrangeArray(lst) :
    size = len(lst)
    i = 0
    while (i < size - 1) :
        if (lst[i] > lst[i + 1]) :
            lst[i], lst[i + 1] = lst[i + 1], lst[i]
        i += 2
        
    # if list size is odd
    if ((size & 1) != 0) :
        i = size - 1
        while (i > 0) :
            if (lst[i] > lst[i - 1]) :
                lst[i], lst[i - 1] = lst[i - 1], lst[i]
            i -= 2

lst = [1, 3, 6, 5, 4, 2, 9, 8, 7]

rearrangeArray(lst)

print(lst)



'''
run:

[1, 5, 3, 6, 2, 8, 4, 9, 7]

'''

 



answered Oct 1, 2023 by avibootz
...