Insert sort.

0
import random

def losujemy(rozm,od,do):
    tab=[]
    while rozm>0:
        tab.append(random.randint(od,do))
        rozm-=1
    return tab

def Insert(tab):
    temp=0
    for i in range(len(tab)):
        j=i
        v=tab[i]
        while j>0 and tab[j-1]>v:
                tab[j]=tab[j-1]
                j-=1
    tab[j]=v
    return tab

print"Podaj rozmiar: "
rozm=int(raw_input())
print"Podaj dolna granice: "
od=int(raw_input())
print"Podaj gorna granice: "
do=int(raw_input())

tab=losujemy(rozm,od,do)
print"Tablica przed IS: "+str(tab)

tab=Insert(tab)
print"Tablica po IS: "+str(tab)

Pomoże ktoś wynaleźć błąd? Uczę się ciągle no inie wiem gdzie tu błądzę...

0

tab[j]=v powinno być w tej pętli for, a nie poza nią.

Btw, http://portalwiedzy.onet.pl/140932,,,,odkryc_a_wynalezc,haslo.html

0

Jak piszesz w pythonie to pisz w pythonie ;)
Błąd masz taki że masz złe wcięcie przy tab[j]=v i zamiast wykonywać to co obieg pętli for, wykonujesz to raz...

def losujemy(rozm,od,do):
    return [random.randint(od,do) for i in range(rozm)]

def Insert(tab):
    temp=0
    for i in range(len(tab)):
        j=i
        pivot=tab[i]
        while j>0 and tab[j-1]>pivot:
                tab[j]=tab[j-1]
                j-=1
        tab[j]=pivot
    return tab

1 użytkowników online, w tym zalogowanych: 0, gości: 1