Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

sortiranje liste pomoću hrpe
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
Gost






PostPostano: 17:15 sri, 8. 9. 2004    Naslov: sortiranje liste pomoću hrpe Citirajte i odgovorite

Može li mi netko objasniti sortiranje liste pomoću hrpe na primjeru: L=(8,3,5,9,8,2,1,10,3,7,4,10) ?

Hvala unaprijed!
Može li mi netko objasniti sortiranje liste pomoću hrpe na primjeru: L=(8,3,5,9,8,2,1,10,3,7,4,10) ?

Hvala unaprijed!


[Vrh]
veky
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 12. 2002. (19:59:43)
Postovi: (5B0)16
Sarma = la pohva - posuda
22 = 24 - 2
Lokacija: negdje daleko...

PostPostano: 17:01 čet, 9. 9. 2004    Naslov: Re: sortiranje liste pomoću hrpe Citirajte i odgovorite

[quote="Anonymous"]Može li mi netko objasniti sortiranje liste pomoću hrpe na primjeru: L=(8,3,5,9,8,2,1,10,3,7,4,10) ?

Hvala unaprijed![/quote]

U početku imamo praznu hrpu.
Zatim idemo kroz listu i brojeve redom ubacujemo u hrpu.
Zatim jedan po jedan vadimo elemente s vrha hrpe i ispisujemo ih van.
Hrpa se reprezentira poljem na standardni način, ako ne znaš kako, viči.

Ovako hrpa raste prilikom ubacivanja svakog pojedinog elementa:[code:1]
(ubacimo 8)
8 (ubacimo 3 na kraj, i on se zamijeni s 8 )
3 8 (ubacimo 5 na kraj, on ostane tamo jer je veći od svog roditelja 3 )
3 8 5 ( 9 ubačen, ostaje na kraju jer mu je roditelj 8 )
3 8 5 9 ( 8 također ostaje, roditelj mu je jednak njemu, druga osmica)
3 8 5 9 8 (ubacujemo 2 koji se zamijeni prvo s 5 , onda s 3 i dođe na vrh)
2 8 3 9 8 5 ( 1 , ista priča - njegov put do vrha je preko 3 i 2 )
1 8 2 9 8 5 3 ( 10 je najveći, pa ostaje na kraju)
1 8 2 9 8 5 3 10 ( 3 se od kraja (9.pozicija) penje 9.->4.->2. )
1 3 2 8 8 5 3 10 9 ( novi 7 se zamijeni sa svojim roditeljem 8 @5. )
1 3 2 8 7 5 3 10 9 8 ( 4 se zamijeni sa 7 , 3 ga zaustavi da ne ide dalje)
1 3 2 8 4 5 3 10 9 8 7 ( zadnja desetka je najveća, pa ostaje na kraju)
1 3 2 8 4 5 3 10 9 8 7 10 (ovo je hrpa nakon svih ubacivanja)[/code:1]

Sad krećemo s izbacivanjima... kako izbacujemo elemente, pišemo ih na output:[code:1]
1 3 2 8 4 5 3 10 9 8 7 10 (izbacimo 1 , izbrišemo 10 s kraja i stavimo ga na njegovo - prvo - mjesto. Nakon toga 10 se zamijeni s manjim od svoje djece - 3 i 2 , dakle 2 , pa onda dalje - manji od 5 i 3 je 3 na 6. mjestu, dalje ne treba jer 12. mjesta više nema)
2 3 3 8 4 5 10 10 9 8 7 (izbacimo 2 , 7 ide: 1.->3.(svejedno)->6. )
3 3 5 8 4 7 10 10 9 8 (izbacimo 3 , 8: 1.->2.->5.)
3 4 5 8 8 7 10 10 9 (izbacimo još jednu 3 , 9: 1.->2.->5.(svejedno))
4 8 5 8 9 7 10 10 (izbacimo 4 , 10 se zamijeni s 5 i kasnije 7 )
5 8 7 8 9 10 10 (izbacimo 5 , opet 10 s kraja ode na 1. , pa na 3.)
7 8 10 8 9 10 (izbacimo 7 , 10 s kraja na početak, i gurne osmice gore)
8 8 10 10 9 (izbacimo (i ispišemo) prvu osmicu, 9 završi na 2. mjestu)
8 9 10 10 (i druga osmica van, na output, 10 se s početka zamijeni s 9 )
9 10 10 (postaje trivijalno: devetka van, 10 na njeno mjesto)
10 10 (prva desetka van, druga na njeno mjesto)
10 (i ta desetka van - pogledajmo output: 1,2,3,3,4,5,7,8,8,9,10,10 . Jupi.)
[/code:1]

A sad nađi neki monitor s dovoljno velikom rezolucijom... :-o :- ))
Anonymous (napisa):
Može li mi netko objasniti sortiranje liste pomoću hrpe na primjeru: L=(8,3,5,9,8,2,1,10,3,7,4,10) ?

Hvala unaprijed!


U početku imamo praznu hrpu.
Zatim idemo kroz listu i brojeve redom ubacujemo u hrpu.
Zatim jedan po jedan vadimo elemente s vrha hrpe i ispisujemo ih van.
Hrpa se reprezentira poljem na standardni način, ako ne znaš kako, viči.

Ovako hrpa raste prilikom ubacivanja svakog pojedinog elementa:
Kod:

(ubacimo 8)
8           (ubacimo 3 na kraj, i on se zamijeni s 8 )
3 8      (ubacimo 5 na kraj, on ostane tamo jer je veći od svog roditelja 3 )
3 8 5   ( 9 ubačen, ostaje na kraju jer mu je roditelj 8 )
3 8 5 9    ( 8 također ostaje, roditelj mu je jednak njemu, druga osmica)
3 8 5 9 8 (ubacujemo 2 koji se zamijeni prvo s 5 , onda s 3 i dođe na vrh)
2 8 3 9 8 5    ( 1 , ista priča - njegov put do vrha je preko 3 i 2 )
1 8 2 9 8 5 3  ( 10 je najveći, pa ostaje na kraju)
1 8 2 9 8 5 3 10  ( 3 se od kraja (9.pozicija) penje 9.->4.->2. )
1 3 2 8 8 5 3 10 9  ( novi 7 se zamijeni sa svojim roditeljem 8 @5. )
1 3 2 8 7 5 3 10 9 8   ( 4 se zamijeni sa 7 , 3 ga zaustavi da ne ide dalje)
1 3 2 8 4 5 3 10 9 8 7 ( zadnja desetka je najveća, pa ostaje na kraju)
1 3 2 8 4 5 3 10 9 8 7 10     (ovo je hrpa nakon svih ubacivanja)


Sad krećemo s izbacivanjima... kako izbacujemo elemente, pišemo ih na output:
Kod:

 1  3  2  8  4  5  3 10  9  8  7 10 (izbacimo 1 , izbrišemo 10 s kraja i stavimo ga na njegovo - prvo - mjesto. Nakon toga 10 se zamijeni s manjim od svoje djece - 3 i 2 , dakle 2 , pa onda dalje - manji od 5 i 3 je 3 na 6. mjestu, dalje ne treba jer 12. mjesta više nema)
 2  3  3  8  4  5 10 10  9  8  7 (izbacimo 2 , 7 ide: 1.->3.(svejedno)->6. )
 3  3  5  8  4  7 10 10  9  8 (izbacimo 3 , 8: 1.->2.->5.)
 3  4  5  8  8  7 10 10  9  (izbacimo još jednu 3 , 9: 1.->2.->5.(svejedno))
 4  8  5  8  9  7 10 10 (izbacimo 4 , 10 se zamijeni s 5 i kasnije 7 )
 5  8  7  8  9 10 10  (izbacimo 5 , opet 10 s kraja ode na 1. , pa na 3.)
 7  8 10  8  9 10  (izbacimo 7 , 10 s kraja na početak, i gurne osmice gore)
 8  8 10 10  9  (izbacimo (i ispišemo) prvu osmicu, 9 završi na 2. mjestu)
 8  9 10 10  (i druga osmica van, na output, 10 se s početka zamijeni s 9 )
 9 10 10 (postaje trivijalno: devetka van, 10 na njeno mjesto)
10 10 (prva desetka van, druga na njeno mjesto)
10 (i ta desetka van - pogledajmo output: 1,2,3,3,4,5,7,8,8,9,10,10 . Jupi.)


A sad nađi neki monitor s dovoljno velikom rezolucijom... Surprised :- ))


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail Posjetite Web stranice
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan