Пример #1
0
def bubble_sort(arr):
    n = len(arr)

    for j in range(n):
        for i in range(n - 1):
            if arr[i] > arr[i + 1]:
                swap(arr, i, i + 1)
def insertion_sort(arr):
    i = 1
    while i < len(arr):
        j = i
        while j > 0 and arr[j - 1] > arr[j]:
            swap(arr, j, j - 1)
            j -= 1
        i += 1
def selection_sort(arr):
    for i in range(len(arr) - 1):
        j_min = i

        for j in range(i + 1, len(arr)):
            if arr[j] < arr[j_min]:
                j_min = j

        if j_min != i:
            swap(arr, i, j_min)
Пример #4
0
def heap_sort(arr):
    n = len(arr)

    i = (n - 1) // 2
    while i >= 0:
        heapify(arr, n, i)
        i -= 1

    i = n - 1
    while i > 0:
        swap(arr, i, 0)
        heapify(arr, i, 0)
        i -= 1
Пример #5
0
def heapify(arr, n, i):
    _max = i
    left = 2 * i + 1
    right = 2 * i + 2

    if left < n and arr[left] > arr[i]:
        _max = left

    if right < n and arr[right] > arr[_max]:
        _max = right

    if _max != i:
        swap(arr, _max, i)
        heapify(arr, n, _max)