Мой профессор дал мне следующее определение «Сортировка оболочки».Я также включил алгоритмы Bubble и Insertion Sort.
В чем преимущество использования Shell Sort по сравнению с обычной сортировкой Insertion Sort или Bubble Sort с gap=1
?В конце концов, Shell Sort все равно сводится к этому, верно?
Я не прошу вас делать мою домашнюю работу.Я законно запутался и хочу понять, что происходит.
Кроме того, я уже посетил Википедию и увидел таблицу сложности времени, и я уже знаю, что они говорят.Я ищу почему , а не что .
def shell(a, n):
gap = n / 2
while gap >= 1:
insertion(a, n, gap) # or bubble
gap /= 2
def bubble(a, n, gap=1):
for i in range(n):
for j in range(n-i-gap):
if a[j] > a[j+gap]:
swap(a, j, j+1)
def insertion(a, n, gap=1):
for i in range(1,n):
x = a[i]
j = i-gap
while j>=0 and a[j]>x:
a[j+gap] = a[j]
j-=gap
a[j+gap]=x