» »

Izziv : Srednja plastenka

Izziv : Srednja plastenka

NejcSSD ::

Imamo pribiližno 100 plastenk v katerih je različna količina vode (v vsaki je drugačna količina). Plastenke so take, da ne vidimo koliko je v njih vode, recimo take:

 Plastenka

Plastenka



Radi bi poiskali tisto plastenko v kateri je toliko vode, da je v pol plastenkah manj vode, v pol pa več vode (ok, če je plastenk skupaj sodo (recimo 100), poiščemo tako, da je v 49 ih manj , v 50 pa več vode).

Edini pripomoček, ki ga imate na voljo, je nagibna tehtnica brez uteži

 Tehtnica

Tehtnica



Kdo zna sestaviti postopek, ki s kar se da malo tehtanji pride do rešitve.

Matek ::

Bolje ispasti glup nego iz aviona.

Zgodovina sprememb…

  • spremenil: Matek ()

fosil ::

Eno predavanje na to temo -> Janez Demšar
Tako je!

Meizu ::

Recimo rekurzija.

jernejl ::

Recimo quickselect, ki deluje na enakem principu kot quicksort.
Ima časovno zahtevnost O(n), če imaš smolo z izbiro pivota pa O(n^2).

Quickselect @ Wikipedia

Yacked2 ::

Rekurzija
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

technolog ::

Jernejl, obstaja tud algoritem, ki ima O(n) worst-case.

http://cs.stackexchange.com/questions/1...

p.s.: Rekurzija ni algoritem.

Zgodovina sprememb…

jernejl ::

Jernejl, obstaja tud algoritem, ki ima O(n) worst-case.

Te optimizacije so zanimive, saj podobne zadeve obstajajo tudi pri algoritmih sortiranja (ali pa alternative, npr. heapsort, mergesort).
Samo boljša worst-case časovna zahtevnost še ne pomeni, da bo v povprečju tisti algoritem hitrejši.
Tukaj je ponavadi trade-off med tem, koliko časa si "on average" pripravljen izgubiti, da bi izboljšal worst-case scenarij.

V zgornjem primeru bi zato raje izbral preprost quickselect, ker je vseeno večja verjetnost, da bom s takim postopkom zaključil hitreje kot če bi se lotil optimizacije določanja pivota (overhead).
Če bi imel nekaj smole, bi pa lahko bil quickselect tudi počasnejši.

Zgodovina sprememb…

  • spremenil: jernejl ()

Meizu ::

technolog je izjavil:

Jernejl, obstaja tud algoritem, ki ima O(n) worst-case.

http://cs.stackexchange.com/questions/1...

p.s.: Rekurzija ni algoritem.


Postopek ni vedno enako algoritmu. Pa ravno nekdo je gor objavu video demšarja, ki z rekurzijo lepo pokaže "postopek" rekurzivnega izločanja različno polnih plastenk.

technolog ::

Algoritem je postopek, ki se konča. Edina razlika.

1. Demšar sortira, tukaj pa iščemo mediano, kar je lažji problem.
2, Vsak rekurziven algoritem se da napisat iterativno.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

enojno povezan seznam -izpis nazaj

Oddelek: Programiranje
243631 (3171) Randomness
»

Identifikacija s pomočjo glasu je težavna

Oddelek: Novice / Zasebnost
474452 (2239) poweroff
»

It means business (strani: 1 2 3 4 5 6 7 8 )

Oddelek: Znanost in tehnologija
37428286 (14285) Thomas
»

[ Teorija ] "premature optimization is the root of all evil"

Oddelek: Programiranje
271844 (1093) BlueRunner
»

C++ vs. C (strani: 1 2 )

Oddelek: Programiranje
766859 (5850) rokpok

Več podobnih tem