Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- from timeit import default_timer
- #Generator liczb losowych:
- def losowaTablica(a,b,N):
- np.random.seed()
- return np.random.randint(a,b,size=N);
- #==========================================================
- # Sortowanie przez wybieranie:
- def SelectionSort(dane):
- kopiaDanych = []
- for a in dane:
- kopiaDanych.append(a)
- tablicaWynik = []
- for wartość in dane:
- minimum = ZnajdźMinimum(kopiaDanych)
- tablicaWynik.append(minimum)
- kopiaDanych.remove(minimum)
- return tablicaWynik;
- def ZnajdźMinimum(dane):
- wynik = 0
- i = 0
- for wartość in dane:
- if i == 0:
- wynik = wartość
- else:
- if wartość < wynik:
- wynik = wartość
- i+=1
- return wynik;
- #==========================================================
- # Sortowanie bąbelkowe:
- def BubbleSort(dane):
- kopiaTablica = []
- kopiaTablica = dane
- wskaźnik = 1
- pomocnik = 0
- while(wskaźnik > 0):
- wskaźnik = 0
- for i in range(0,len(dane)-1):
- if kopiaTablica[i] >kopiaTablica[i+1]:
- wskaźnik = 1
- pomocnik = kopiaTablica[i]
- kopiaTablica[i] = kopiaTablica[i+1]
- kopiaTablica[i+1] = pomocnik
- i+=1
- return kopiaTablica;
- #==========================================================
- #sortowanie przez zliczanie:
- def CountingSort(dane, a, b, skok):
- kopiaDanych = []
- for x in dane:
- kopiaDanych.append(x)
- tablicaWszystkichMożliwości = [0]*int(b-a/skok+1)
- i = 0
- for dana in kopiaDanych:
- tablicaWszystkichMożliwości[dana-1] += 1
- tablicaWynikowa = []
- wartość=0
- for y in tablicaWszystkichMożliwości:
- for i in range(0,y):
- tablicaWynikowa.append(wartość)
- wartość+=1
- return tablicaWynikowa;
- #==========================================================
- daneA = []
- daneA = losowaTablica(0,1000,5000)
- daneB = []
- for i in range(0,5000):
- daneB.append(4999-i)
- #testy:
- print("Start!")
- #Sortowanie przez wybieranie:
- start = default_timer()
- SelectionSort(daneA)
- end = default_timer()
- wynikASS = end - start
- start = default_timer()
- SelectionSort(daneB)
- end = default_timer()
- wynikBSS = end - start
- #Sortowanie bąbelkowe:
- start = default_timer()
- BubbleSort(daneA)
- end = default_timer()
- wynikABS = end - start
- start = default_timer()
- BubbleSort(daneB)
- end = default_timer()
- wynikBBS = end - start
- #Sortowanie przez zliczanie:
- start = default_timer()
- CountingSort(daneA,0,1000,1)
- end = default_timer()
- wynikACS = end - start
- start = default_timer()
- CountingSort(daneB,0,4999,1)
- end = default_timer()
- wynikBCS = end - start
- #Sortowanie domyślne:
- start = default_timer()
- daneA.sort()
- end = default_timer()
- wynikADS = end - start
- start = default_timer()
- daneB.sort()
- end = default_timer()
- wynikBDS = end - start
- print("Dziękuję za uwagę :)")
- #Wpisywanie do pliku:
- with open("Wyniki.txt" , "w") as file:
- file.write("Uwaga! Uwaga!\nWyniki:\n")
- file.write("Sortowanie przez wybieranie: " + str(wynikASS) + " sekundków, " + str(wynikBSS) + " sekundków.")
- file.write("\nSortowanie bąbelkowe: " + str(wynikABS) + " sekundków, "+ str(wynikBBS) + " sekundków.")
- file.write("\nSortowanie przez zliczanie: "+ str(wynikACS)+ " sekundków, "+ str(wynikBCS) + " sekundków.")
- file.write("\nDefaultSort: "+ str(wynikADS)+ " sekundków, "+ str(wynikBDS) + " sekundków")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement