Está en la página 1de 1

Elektrotehniki fakultet Sarajevo

Odsjek za raunarstvo i informatiku


Predmet: Algoritmi i strukture podataka

Priprema za vjebu 6

Cilj vjebe je upoznavanje sa algoritmima sortiranja. Studenti e za pripremu implementirati


nekoliko algoritama sortiranja, a zatim na vjebi implementirati dodatne algoritme sortiranja.

Rok: 20.12.2017 Srijeda do 23:59:59

Zadatak 1

Napisati sljedee funkcije:


void bubble_sort(Tip* niz, int vel)
void selection_sort(Tip* niz, int vel)
void quick_sort(Tip* niz, int vel)
void merge_sort(Tip* niz, int vel)
Svaka od navedenih funkcija implementira algoritam sortiranja dat u imenu funkcije nad
generikim nizom niz veliine vel.

Takoer napraviti sljedee funkcije:

void ucitaj(string filename, int*& niz, int &vel)

Ova funkcija iz datoteke iji je puni put dat u parametru filename uitava niz cijelih brojeva u
pokaziva niz (dat preko reference kako biste mogli u funkciji izvriti dinamiku alokaciju), a u
referencu vel upisuje broj uitanih lanova niza. Format datoteke treba biti: niz brojeva razdvojenih
razmakom ili praznim redom.

Napravite funkciju koja:

pomou funkcije ucitaj() uitava brojeve u niz;


omoguuje korisniku da izabere koji algoritam sortiranja e se koristiti;
poziva odgovarajuu funkciju za sortiranje;
ispisuje vrijeme koliko se funkcija izvravala (u milisekundama);
provjerava da li je niz zaista sortiran (prolazi kroz niz i provjerava da li je svaki lan vei ili
jednak prethodnom),
zapisuje sortirani niz u neku novu izlaznu datoteku.

Radi lakeg testiranja programa napravite i sljedeu funkciju:

void generisi(string filename, int vel);

koja u datoteku iji je put dat u parametru filename upisuje vel sluajno generisanih brojeva, pa
dodajte u main() mogunost da se pozove i ova funkcija.

También podría gustarte