Il mio professore mi ha dato la seguente definizione di Shell Sort. Ho incluso anche gli algoritmi Bubble e Insertion Sort.Qual è il vantaggio di Shell Sort rispetto a Insertion/Bubble Sort?
Qual è il vantaggio dell'utilizzo di Shell Sort rispetto a un normale Sorting o Bubble Sort con gap=1
? Alla fine, lo Shell Sort si riduce comunque, giusto?
Non ti sto chiedendo di fare i compiti. Sono legittimamente confuso e voglio capire cosa sta succedendo.
Inoltre, ho già visitato Wikipedia e ho visto il tavolo della complessità del tempo e so già cosa dicono. Sto cercando il perché, non lo cosa.
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
È possibile trovare [Condorto] (http://en.wikipedia.org/wiki/Comb_sort) interessante.Sembra che molte persone non lo sappiano, il che è un peccato. –