Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import randint
- import datetime
- #QUICKSORT!
- def gen_tablice(size=1000000, max=2500): #USTALENIE ROZMIARU TABLICY
- return [randint(0,max) for _ in range(size)]
- def dziel(a, mniejsza, wieksza):
- i = mniejsza -1 #pivot -1 -> lewa strona ustalonego przedziału
- pivot = a[wieksza] #ostatni / najwiekszy index z prawej strony
- for j in range(mniejsza,wieksza):
- if a[j] <= pivot:
- i+=1
- a[i],a[j] = a[j],a[i]
- a[i+1],a[wieksza] = a[wieksza],a[i+1]
- return i+1
- def sortowanie_miejsce(a, mniejsza = 0, wieksza = None):
- if wieksza == None:
- wieksza=len(a) - 1
- if mniejsza<wieksza:
- part = dziel(a,mniejsza,wieksza) #partycje dookoła pivota
- sortowanie_miejsce(a, mniejsza, part-1) #sortuj lewa/mniejsza czesc
- sortowanie_miejsce(a, part+1, wieksza) #sortuj prawa/wieksza czesc
- a = gen_tablice()
- print("Start QS\n")
- start_qs = datetime.datetime.now()
- #print("Do posortowania:",a)
- sortowanie_miejsce(a)
- #print(" Posortowano:",a)
- duration_qs = datetime.datetime.now() - start_qs
- print("Stop QS\n")
- #BUBBLE SORT
- #tablica = gen_tablice()
- #dl = len(tablica)
- #print("Start BS\n")
- #start_bbl = datetime.datetime.now()
- #for x in range(dl):
- # for y in range(0, dl-x-1):
- # if tablica[y] > tablica[y+1]:
- # tablica[y], tablica[y+1] = tablica[y+1], tablica[y]
- #duration_bbl = datetime.datetime.now() - start_bbl
- #print("Stop bS\n\n")
- print("Posortowano",len(a),"liczb\n")
- #print("\tCzas BS:",duration_bbl,"\n")
- print("\tCzas QS:",duration_qs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement