Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.61 KB | None | 0 0
  1.  
  2. import numpy as np
  3. from timeit import default_timer
  4.  
  5.  
  6. #Generator liczb losowych:
  7. def losowaTablica(a,b,N):
  8.     np.random.seed()
  9.     return np.random.randint(a,b,size=N);
  10.  
  11.  
  12.  
  13. #==========================================================
  14. # Sortowanie przez wybieranie:
  15. def SelectionSort(dane):
  16.    
  17.     kopiaDanych = []
  18.     for a in dane:
  19.         kopiaDanych.append(a)
  20.        
  21.     tablicaWynik = []
  22.     for wartość in dane:
  23.         minimum = ZnajdźMinimum(kopiaDanych)
  24.         tablicaWynik.append(minimum)
  25.         kopiaDanych.remove(minimum)
  26.    
  27.     return tablicaWynik;
  28.  
  29. def ZnajdźMinimum(dane):
  30.     wynik = 0
  31.     i = 0
  32.  
  33.     for wartość in dane:
  34.         if i == 0:
  35.             wynik = wartość
  36.            
  37.         else:
  38.             if wartość < wynik:
  39.                 wynik = wartość
  40.         i+=1
  41.     return wynik;
  42.  
  43. #==========================================================
  44. # Sortowanie bąbelkowe:
  45. def BubbleSort(dane):
  46.     kopiaTablica = []
  47.     kopiaTablica = dane
  48.     wskaźnik = 1
  49.     pomocnik = 0
  50.  
  51.     while(wskaźnik > 0):
  52.         wskaźnik = 0
  53.  
  54.         for i in range(0,len(dane)-1):
  55.             if kopiaTablica[i] >kopiaTablica[i+1]:
  56.                 wskaźnik = 1
  57.                 pomocnik = kopiaTablica[i]
  58.                 kopiaTablica[i] = kopiaTablica[i+1]
  59.                 kopiaTablica[i+1] = pomocnik
  60.             i+=1
  61.     return kopiaTablica;
  62.  
  63. #==========================================================
  64. #sortowanie przez zliczanie:
  65. def CountingSort(dane, a, b, skok):
  66.     kopiaDanych = []
  67.     for x in dane:
  68.         kopiaDanych.append(x)
  69.    
  70.     tablicaWszystkichMożliwości = [0]*int(b-a/skok+1)
  71.     i = 0
  72.     for dana in kopiaDanych:
  73.         tablicaWszystkichMożliwości[dana-1] += 1
  74.     tablicaWynikowa = []
  75.     wartość=0
  76.     for y in tablicaWszystkichMożliwości:
  77.         for i in range(0,y):
  78.             tablicaWynikowa.append(wartość)
  79.         wartość+=1
  80.  
  81.     return tablicaWynikowa;
  82.  
  83.  
  84. #==========================================================
  85.  
  86. daneA = []
  87. daneA = losowaTablica(0,1000,5000)
  88.  
  89. daneB = []
  90.  
  91. for i in range(0,5000):
  92.     daneB.append(4999-i)
  93.  
  94. #testy:
  95. print("Start!")
  96.  
  97. #Sortowanie przez wybieranie:
  98. start = default_timer()
  99. SelectionSort(daneA)
  100.  
  101. end = default_timer()
  102. wynikASS = end - start
  103.  
  104. start = default_timer()
  105. SelectionSort(daneB)
  106.  
  107. end = default_timer()
  108. wynikBSS = end - start
  109.  
  110. #Sortowanie bąbelkowe:
  111. start = default_timer()
  112. BubbleSort(daneA)
  113.  
  114. end = default_timer()
  115. wynikABS = end - start
  116.  
  117. start = default_timer()
  118. BubbleSort(daneB)
  119.  
  120. end = default_timer()
  121. wynikBBS = end - start
  122.  
  123. #Sortowanie przez zliczanie:
  124. start = default_timer()
  125. CountingSort(daneA,0,1000,1)
  126.  
  127. end = default_timer()
  128. wynikACS = end - start
  129.  
  130. start = default_timer()
  131. CountingSort(daneB,0,4999,1)
  132.  
  133. end = default_timer()
  134. wynikBCS = end - start
  135.  
  136. #Sortowanie domyślne:
  137.  
  138. start = default_timer()
  139. daneA.sort()
  140.  
  141. end = default_timer()
  142. wynikADS = end - start
  143.  
  144. start = default_timer()
  145. daneB.sort()
  146.  
  147. end = default_timer()
  148. wynikBDS = end - start
  149.  
  150.  
  151.  
  152. print("Dziękuję za uwagę :)")
  153.  
  154. #Wpisywanie do pliku:
  155. with open("Wyniki.txt" , "w") as file:
  156.     file.write("Uwaga! Uwaga!\nWyniki:\n")
  157.     file.write("Sortowanie przez wybieranie: " + str(wynikASS) + " sekundków, " + str(wynikBSS) + " sekundków.")
  158.     file.write("\nSortowanie bąbelkowe: " + str(wynikABS) + " sekundków, "+ str(wynikBBS) + " sekundków.")
  159.     file.write("\nSortowanie przez zliczanie: "+ str(wynikACS)+ " sekundków, "+ str(wynikBCS) + " sekundków.")
  160.     file.write("\nDefaultSort: "+ str(wynikADS)+ " sekundków, "+ str(wynikBDS) + " sekundków")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement