Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 14. 03. 2014 18:50

User123456
Zelenáč
Příspěvky: 3
Škola: -
Pozice: student
Reputace:   
 

Algoritmus pro hledání lokálního maxima v matici

Ahoj,

potřebuju vymyslet algoritmus, který v matici n x n (vzájemně různé prvky) najde lokální maximum v čase O(n). U aktuálního prvku porovnává sousedy (nahoře, dole, vlevo, vpravo).

Výsledný algoritmus by měl být rekurzivní.

Napadlo mě něco takového (je to potřeba upravit, aby se vždy vybral největší soused):

FindMax(matrix, x, y)
{
...some code should be here...

If(matrix[x+1,y] > matrix[x,y])
  FindMax(matrix, x+1, y)
else if(matrix[x,y+1] > matrix[x,y])
  FindMax(matrix, x, y+1)
...
some code
....
}

Máte nějaký tip? Co by mohlo pomoct?

Offline

 

#2 15. 03. 2014 16:11

Spown3
Příspěvky: 38
Reputace:   
 

Re: Algoritmus pro hledání lokálního maxima v matici

Zdravím, najjednoduchší spôsob co asi je to spraviť tak ze das si nejakú pomocnú premennú rovnú 0, potom podmienky ci x+1 nieje mimo rozsah ak nie porovnaš ho s tou pomocnou premennou ak je väčši tak tu pomocnú premennú prepisešem a tak to spravíš aj pre x-1, y+1, y-1. Nieje to najneefektívnejšie riešenie bude tam 8 podmienok, ale malo by to fungovať

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson