VISOKA POSLOVNA ŠKOLA STRUKOVNIH STUDIJA

BLACE

  

  
  
  
  

SEMINARSKI RAD

Predmet:

 

Algoritmi i struktura podataka

             Tema: 

Unutra

Š

nje sortiranje algoritama

Student:                                                                             Profesor:
Marko Jovanovic  57/07 III                                                   dr. Branislav Jevtović

 

2

SADRZAJ

UVOD

…………………………………………………………………………………………

3

1.

Sortiranje poređenjem

..................................................................................

5

             1.1 Metodi umetanja

...........................................................................................

5

               

1.2

 

Metodi selekcije

............................................................................................

8

             1.3 Metodi zamene

............................................................................................

14

    2. 

Metodi sortiranja linearne složenosti

……………………………

17

      

2.1 Sortiranje brojanjem

………………………………………………...….

17

              

2.2 Adresno sortiranje

………………………………………………….....…

18

              

2.3 

Radix

 sortiranje

………………………………………………………...…

19

    3. 

Poređenje efikasnosti metoda unutrašnjeg sortiranja

...

20

    

4. 

Primena principa sortiranja – statistika poretka

................

21

             

4.1 Određivanje minimuma i maksimuma

…..........................................

21

             4.2 Određivanje 

k

-tog najmanjeg elementa

…………………………..

22

LITERATURA

……………..…………………………………………………………...

24

background image

 

4

pokazivače u pomoćnom vektoru umesto samih zapisa, a krajnji poredak, prikazan 
na slici 1.1b, je određen upravo vektorom pokazivača i na osnovu njega se zapisi 
mogu konačno i fizički premestiti. 

2 3

R

1

4 8

1 5

3 7

R

2

R

3

R

4

key

2 3

R

1

4 8

1 5

3 7

R

2

R

3

R

4

key

a)

b )

Slika 1.1  Sortiranje po adresi – stanje pokazivača: a) pre sortiranja i 

b) posle sortiranja

Drugi   način   je   ulančavanje   zapisa   između   sebe   u   listu   bez   njihovog 

premeštanja. Tada svaki zapis treba da ima i dodatno polje  

link

  koje ukazuje na 

zapis sa sledećom vrednošću ključa, kao i spoljašnji pokazivač 

first

 koji pokazuje 

na   zapis   sa   najmanjim   (ili   najvećim)   ključem   (slika   1.2).   Ovde   se   potreba   za 
premeštanjem izbegava prevezivanjem liste bez fizičkog pomeranja zapisa.

2 3

R

1

4 8

1 5

3 7

R

2

R

3

R

4

key

link

first

Slika 1.2 Sortiranje prevezivanjem pokazivača

Postoji  više  pristupa  problemu unutrašnjeg sortiranja, sa  mnogo varijanti 

algoritama različite složenosti i ostalih karakteristika. Najopštiji način za sortiranje 
je međusobno upoređivanje podataka po ključu, pa se ova grupa metoda naziva 

sortiranje poređenjem

. Pokazuje se da su najbolje performanse kod ovih metoda u 

srednjem i najgorem slučaju ograničene na  

O

(

n

  log  

n

). Postoji, takođe, i jedan 

manji broj metoda koji nisu zasnovani na međusobnom poređenju ključeva, već se 
zasnivaju na nekim specifičnim karakteristikama ključeva, a mogu da postignu i 
linearnu složenost 

O

(

n

). Posle izlaganja obe grupe metoda i razmatranja njihovih 

reprezentativnih   tehnika,   na   kraju   se   daje   opšte   poređenje   metoda   unutrašnjeg 
sortiranja.

 

5

1. Sortiranje poređenjem

Svi metodi ovoga tipa su zasnovani isključivo na međusobnom poređenju 

vrednosti ključeva odgovarajućih zapisa koji se sortiraju. Glavni pristupi se mogu 
svrstati u četiri grupe:

metodi umetanja

metodi selekcije

metodi zamene

metodi spajanja
  Metodi   spajanja,   iako   mogu   da   se   koriste   i   za   unutrašnje   sortiranje, 

predstavljaju skoro isključivi način sortiranja podataka na spoljašnjim uređajima. 
U izlaganju u okviru svake grupe se postupno počinje sa 

direktnim metodima. 

Ovi 

metodi dobro odslikavaju osnovne principe, jer su jednostavni, kratki i laki za 
razumevanje.

1.1 Metodi umetanja

Ova grupa metoda se zasniva na principu postepenog uređivanja niza, tako 

što se u svakom trenutku održava uređeni i neuređeni deo. U svakom koraku se 
uzima   jedan   element   iz   neuređenog   dela   i   umeće   na   odgovarajuće   mesto   u 
uređenom delu, koji na taj način raste. Predstavnici ove grupe metoda su:

direktno umetanje

umetanje sa smanjenjem inkrementa 

Direktno umetanje

Osnovni   princip   se   najbolje   odslikava   u   metodu  

direktnog   umetanja

.   U 

početku se uređeni deo sastoji samo od prvog elementa niza, a u neuređeni deo 
spadaju svi ostali elementi. Neka se posle  

i  

- 1 koraka u uređenom delu nalaze 

elementi 

a

1

 ... 

a

i

-1

. Tada se u koraku 

i

 uzima prvi element iz neuređenog dela 

a

i

 i 

ubacuje na mesto koje mu po neopadajućem poretku odgovara u uređenom delu, 
čime se ovaj deo povećava za jedan element. Sortiranje se završava kad nema više 
elemenata u neuređenom delu. Direktno umetanje je ilustrovano po koracima za 
dati skup ključeva na slici 1.3. Algoritam za sortiranje direktnim umetanjem je 

background image

 

7

dela koji su veći od tekućeg elementa pomeraju za po jedno mesto naviše i tako 
prave mesto za njegovo umetanje. Metod je stabilan jer kad ključ koji se umeće 
dođe do jednakog ključa u uređenom delu, on se stavlja neposredno iza njega.

Najbolje   performanse   direktno   umetanje   postiže   kada   je   niz   već   uređen. 

Tada je potrebno samo jedno poređenje u svakoj iteraciji što daje 

C

min

 = 

- 1, a svi 

elementi ostaju na svojim mestima. Prema tome, vremenska složenost je 

O

(

n

).

Umetanje sa smanjenjem inkrementa

Metod prvo razdvoji početni niz na grupe tako što u svaku grupu svrstava 

elemente na ekvidistantnim pozicijama u nizu. Ovaj razmak između elemenata u 
grupi   se   naziva  

inkrementom

 

h

1

.   Broj   grupa,   naravno,   odgovara   vrednosti 

inkrementa. Zatim se ove grupe posebno sortiraju primenom metoda direktnog 
umetanja i niz postaje 

h

1

-sortiran. U narednom koraku u nizu koji je nastao posle 

prvog koraka inkrement se smanjuje na 

h

2

 < 

h

1

 i tako formira manji broj grupa sa 

većim brojem elemenata, pa se one opet nezavisno sortiraju. U svakom sledećem 
koraku isti postupak se ponavlja sa smanjenim inkrementom. Na kraju se postupak 
završava svođenjem inkrementa na 1 što znači da je čitav niz jedna grupa čijim se 
sortiranjem   dobija   konačan   rezultat.   Ovaj   poslednji,   jedinični   korak   garantuje 
potpunu sortiranost niza. Na slici 1.4 demonstriran je rad ovog metoda. U prvom 
koraku inkrement je 4, pa postoje četiri grupe od po 2 elementa, da bi se u drugom 
koraku inkrement smanjio na 2, a u trećem, poslednjem koraku na 1.

0

6

2 7

5 7

6 5

7 5

6 5

7 5

6

5 7

9 9

2 7

0

9 6

h

1

 =  4

6 5

2 7

0

5 7

9 9

7 5

6

9 6

h

2

 =  2

0

2 7

6

5 7

6 5

7 5

9 9

9 6

h

3

 =  1

9 6

9 9

Slika 1.4 Umetanje sa smanjenjem inkrementa

Algoritam sortiranja sa smanjenjem inkrementa je realizovan procedurom 

SHELL-SORT. Pored pretpostavke, kao i ranije, da se podaci za sortiranje nalaze u 
nizu 

a

[1:

n

], ovde se pretpostavlja da se vrednosti inkremenata nalaze u nizu 

h

[1:

t

].

SHELL-SORT(

 

 

a

  ,  

 h

   )  

for

 

i

 = 1 

to

 

t

 

do

      

inc

 = 

h

[

i

]

Želiš da pročitaš svih 24 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti