Рубрики
Без рубрики

Программа сортировки сортировки Python Merge

Автор оригинала: Python Examples.

Python Merge Sort.

В этом руководстве мы реализовали алгоритм сортировки слияния. Кроме того, по умолчанию функция merge_sort () в следующей программе сортирует список в порядке возрастания.

Чтобы получить порядок убывания, все, что вам нужно сделать, просто обратный список.

Python Program

def merge_sort(nlist, start, end):
    #sorts the list from indexes start to end - 1 inclusive
    if end - start > 1:
        mid = (start + end)//2
        merge_sort(nlist, start, mid)
        merge_sort(nlist, mid, end)
        merge_list(nlist, start, mid, end)
 
def merge_list(nlist, start, mid, end):
    left = nlist[start:mid]
    right = nlist[mid:end]
    k = start
    i = 0
    j = 0
    while (start + i < mid and mid + j < end):
        if (left[i] <= right[j]):
            nlist[k] = left[i]
            i = i + 1
        else:
            nlist[k] = right[j]
            j = j + 1
        k = k + 1
    if start + i < mid:
        while k < end:
            nlist[k] = left[i]
            i = i + 1
            k = k + 1
    else:
        while k < end:
            nlist[k] = right[j]
            j = j + 1
            k = k + 1

#input list
aList = [1, 74, 96, 5, 42, 63]

merge_sort(aList, 0, len(aList))
print('Sorted List after Merge Sort, in Ascending Order\n', aList)

aList.reverse()
print('Sorted List after Merge Sort, in Descending Order\n', aList)

Выход

Sorted List after Merge Sort, in Ascending Order
 [1, 5, 42, 63, 74, 96]
Sorted List after Merge Sort, in Descending Order
 [96, 74, 63, 42, 5, 1]

Заключение

В этом руководстве примеров Python мы узнали, как реализовать алгоритм сортировки слияния в Python.