Рубрики

Программа Python для ShellSort

В shellSort мы делаем массив h-отсортированным для большого значения h. Мы продолжаем уменьшать значение h, пока оно не станет равным 1. Считается, что массив отсортирован по h, если отсортированы все подсписки каждого элемента h / '.

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

  

def shellSort(arr):

  

    # Начните с большого разрыва, затем уменьшите разрыв

    n = len(arr)

    gap = n/2

  

    # Сделайте вставку с пробелом для этого размера зазора.

    # Первые элементы гэпа a [0..gap-1] уже находятся в зазоре

    # порядок продолжения добавления еще одного элемента, пока весь массив

    # пробел отсортирован

    while gap > 0:

  

        for i in range(gap,n):

  

            # добавить [i] к элементам, которые были отсортированы по пробелу

            # сохранить [i] в temp и сделать дыру в позиции i

            temp = arr[i]

  

            # сдвигать ранние отсортированные элементы до правильного

            # место для [i] найдено

            j = i

            while  j >= gap and arr[j-gap] >temp:

                arr[j] = arr[j-gap]

                j -= gap

  

            # поместите temp (оригинал a [i]) в правильное местоположение

            arr[j] = temp

        gap /= 2

  

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

arr = [ 12, 34, 54, 2, 3]

  

n = len(arr)

print ("Array before sorting:")

for i in range(n):

    print(arr[i]),

  
shellSort(arr)

  

print ("\nArray after sorting:")

for i in range(n):

    print(arr[i]),

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

Выход:

Array before sorting:
12 34 54 2 3 
Array after sorting:
2 3 12 34 54

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

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

Программа Python для ShellSort

0.00 (0%) 0 votes