Tässä on esimerkki Shell-lajittelusta. Shell-lajittelussa verrataan kaksi lukua tietyn etaisyyden päästä. Etäisyys on aluksi puolet taulukon pituudesta ja puolittuu joka kerta. Keskityn jatkossa lajittelu -ja hakualgoritmeihin ja tietorakenteisiin.
#Tehdään shell-lajittelu
#Luodaan taulukko.
luvut = [22,24,14,15,44,40,28,30,15,4,12,5]
#Otetaan alku askeleeksi puolet taulukon pituudesta.
#Askel puolitetaan joka kierroksella
askel = int(len(luvut)/2)
while (askel > 0):
i = askel
#Järjestetään luvut askeleen mukaan.
while (i < len(luvut)):
while (luvut[i-askel] > luvut[i]):
#Vaihdetaan järjestystä
#Käytetään temp-muuttujaa apumuuttujana
temp = luvut[i]
luvut[i] = luvut[i-askel]
luvut[i-askel] = temp
if (i-askel >= askel):
i -= askel
i += 1
#Puolitetaan askel seuraavaa kierrosta varten.
askel = int(askel/2)
print(luvut)Lisäys 3.4. 11.16
Tässä kuussa teen keko -ja kantalukulajittelun.
Aihe on jo aika vanha, joten et voi enää vastata siihen.