Advertisement
Guest User

MaMaPYTHON

a guest
Oct 22nd, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.58 KB | None | 0 0
  1. from random import randint
  2. import datetime
  3.  
  4. #QUICKSORT!
  5.  
  6. def gen_tablice(size=1000000, max=2500): #USTALENIE ROZMIARU TABLICY
  7.     return [randint(0,max) for _ in range(size)]
  8.  
  9. def dziel(a, mniejsza, wieksza):
  10.     i = mniejsza -1 #pivot -1 -> lewa strona ustalonego przedziału  
  11.     pivot = a[wieksza] #ostatni / najwiekszy index z prawej strony
  12.     for j in range(mniejsza,wieksza):
  13.         if a[j] <= pivot:
  14.             i+=1
  15.             a[i],a[j] = a[j],a[i]
  16.     a[i+1],a[wieksza] = a[wieksza],a[i+1]
  17.     return i+1
  18.  
  19. def sortowanie_miejsce(a, mniejsza = 0, wieksza = None):
  20.     if wieksza == None:
  21.         wieksza=len(a) - 1
  22.     if mniejsza<wieksza:
  23.         part = dziel(a,mniejsza,wieksza) #partycje dookoła pivota
  24.         sortowanie_miejsce(a, mniejsza, part-1) #sortuj lewa/mniejsza czesc
  25.         sortowanie_miejsce(a, part+1, wieksza) #sortuj prawa/wieksza czesc
  26.  
  27.  
  28. a = gen_tablice()
  29. print("Start QS\n")
  30. start_qs = datetime.datetime.now()
  31. #print("Do posortowania:",a)
  32. sortowanie_miejsce(a)
  33. #print("  Posortowano:",a)
  34. duration_qs = datetime.datetime.now() - start_qs
  35. print("Stop QS\n")
  36.        
  37. #BUBBLE SORT
  38.  
  39. #tablica = gen_tablice()
  40.  
  41. #dl = len(tablica)
  42. #print("Start BS\n")
  43. #start_bbl = datetime.datetime.now()
  44.  
  45. #for x in range(dl):
  46. #    for y in range(0, dl-x-1):
  47. #        if tablica[y] > tablica[y+1]:
  48. #            tablica[y], tablica[y+1] = tablica[y+1], tablica[y]
  49.  
  50. #duration_bbl = datetime.datetime.now() - start_bbl
  51. #print("Stop bS\n\n")
  52.  
  53. print("Posortowano",len(a),"liczb\n")
  54. #print("\tCzas BS:",duration_bbl,"\n")
  55. print("\tCzas QS:",duration_qs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement