Выберите порядок сортировки без повторения кода для сортировки вставкой - PullRequest
0 голосов
/ 02 ноября 2019

Я хочу иметь параметр в функции, который бы определял, сортировать ли по возрастанию или по убыванию. Чтобы изменить порядок, мне просто нужно изменить ключ myList [i]> на ключ myList [i] <. Мне было интересно, есть ли в Python более чистый путь, чем использование if / else и повторение кода цикла while? Я ищу что-то вроде назначения оператора переменной, такой как "order = <", если это имеет смысл </p>

# ascending
def insertionSort(myList, order): 
    # myList is an unsorted list of only int
    # order determines whether to sort in ascending or descending
    # returns sorted list
    for index, key in enumerate(myList):
        i = index - 1
        while i > -1 and myList[i] > key:
            myList[i+1] = myList[i]
            i -= 1
        myList[i+1] = key

    return myList
...