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.