Рубрики

Программа Python для сортировки гребней

Comb Sort — это в основном улучшение по сравнению с Bubble Sort. Пузырьковая сортировка всегда сравнивает соседние значения. Таким образом, все инверсии удаляются по одному. Comb Sort улучшает Bubble Sort, используя разрыв размером больше 1. Разрыв начинается с большого значения и уменьшается в 1,3 раза на каждой итерации, пока не достигнет значения 1. Таким образом, Comb Sort удаляет более одного подсчета инверсии с одним поменять местами и работает лучше, чем Bublle Sort.

Эмпирически было установлено, что коэффициент сжатия равен 1,3 (при тестировании Combsort в более чем 200 000 случайных списках) [Источник: Wiki ]

Хотя в среднем он работает лучше, чем Bubble Sort, в худшем случае остается O (n 2 ).

# Python программа для реализации CombSort

  
# Найти следующий пробел из текущего

def getNextGap(gap):

  

    # Сокращение разрыва по коэффициенту усадки

    gap = (gap * 10)/13

    if gap < 1:

        return 1

    return gap

  
# Функция для сортировки arr [] с использованием Comb Sort

def combSort(arr):

    n = len(arr)

  

    # Инициализировать пробел

    gap = n

  

    # Инициализируйте swapped как true, чтобы убедиться, что

    # цикл работает

    swapped = True

  

    # Продолжайте бегать, пока разрыв больше 1 и последний

    # итерация вызвала своп

    while gap !=1 or swapped == 1:

  

        # Найти следующий пробел

        gap = getNextGap(gap)

  

        # Инициализировать поменять местами как ложь, чтобы мы могли

        # проверить, произошел ли обмен

        swapped = False

  

        # Сравнить все элементы с текущим разрывом

        for i in range(0, n-gap):

            if arr[i] > arr[i + gap]:

                arr[i], arr[i + gap]=arr[i + gap], arr[i]

                swapped = True

  

  
# Код драйвера для проверки выше

arr = [ 8, 4, 1, 3, -44, 23, -6, 28, 0]

combSort(arr)

  

print ("Sorted array:")

for i in range(len(arr)):

    print (arr[i]),

  

  
# Этот код предоставлен Мохитом Кумрой

Выход :

Sorted array: 
-44 -6 0 1 3 4 8 23 28 56 

Пожалуйста, обратитесь к полной статье о Comb Sort для более подробной информации!

Рекомендуемые посты:

Программа Python для сортировки гребней

0.00 (0%) 0 votes