Python: zoznam – hľadanie maxima, hľadanie prvku.

14 jan

zoznam je indexovaná štruktúra, to znamená každý prvok má svoju pozíciu (adresu) kde sa nachádza, je to ako poradové číslo. Index začína na hodnote 0 tz. nie 1 ako by sa nám možno zdalo logickejšie

p=[9,5,7,8,6,14,78,2,98] – vytvorenie 9 členného zoznamu s názvom p
p[0] na nultej pozícii je číslo 9
p[5] na piatej pozícii je 14

Existuje funkcia max(), ktorá vráti najväčší prvok zoznamu, ale v algoritme si ukážeme ako nájsť maximum bez tejto funkcie.

Zistenie najväčšej hodnoty v zozname

Do pomocnej premennej najvac si dáme prvý člen zoznamu –p. Danú premennú najvac porovnávame s ďalšími členmi zoznamu p, ak nájdeme člena v zozname p väčšieho ako je najvac, tak do najvac vložíme nájdenú väčšiu hodnotu. Takto pokračujeme až do konca zoznamu.

import random #importujeme náhodné čísla
p=[] # vytvoríme prázdny zoznam prvkov s názvom p
n=int(input(‚zadaj pocet prvkov‘))
for i in range(n): # koľko sme si zvolili prvkov n , toľko krát budeme pridávať

p.append(random.randrange(100)) #do zoznamu náhodné číslo do veľkosti 100

print(p) # vypíšeme zoznam p
najvac=p[0] # vytvoríme si premennú do ktorej dáme prvý člen zoznamu
pn=0 #pozícia najväčšieho čísla

for i in range(1, len(p)): #prejdeme všetkými prvkami zoznamu

if najvac < p[i]: #každý prvok pola porovnáme s najvac a ak je väčší ako najvac

najvac=p[i] # do najvac dáme prvok zoznamu, ktorý je väčší ako najvac
pn=i # do pn dáme pozíciu, kde sme väčšie číslo ako najvac našli

print(‚najvacsia hodnota je {} na pozicii {}‘.format(najvac,pn))

 

Hľadanie prvku v zozname

Zadáme si kritérium hľadania, vytvoríme pomocnú premennú ktorú nastavíme mimo rozsah indexov zoznamu aktuálne na zápornú hodnotu.

Zadané kritérium budeme porovnávať so všetkými prvkami zoznamu, ak nájdeme zhodu s niektorým prvkom, odložíme si index pozície kde prišlo k zhode.

Daný algoritmus pokračuje ďalej a tak nájde vlastne výskyt poslednej zhody, nie prvej.

Ak nám stačí prvej zhody, cyklus prehľadávania ukončíme v mieste zhody.

Existuje metóda zoznamu – index() táto vráti hodnotu indexu prvého výskytu.

import random #importujeme náhodne čísla
p=[]# vytvoríme prázdny zoznam prvkov s názvom p
n=int(input(‚zadaj pocet prvkov‘))

for i in range(n): # koľko sme si zvolili prvkov n , toľko krát budeme pridávať

p.append(random.randrange(100)) #do zoznamu náhodné číslo do veľkosti 100

print(p)
hl=int(input(‚zadaj kriterium na hladanie – cislo‘))
phl=-1 #pozícia hľadaného na začiatok mimo rozsah

for i in range(len(p)):#prejdeme všetkými prvkami zoznamu

if hl == p[i]:# ak sa niektorý prvok v zozname p rovná hľadanému prvku hl- kritérium

phl=i # do phl odložím pozíciu kde sa našla zhoda s hľadaným prvkom

if phl >= 0: # ak je pozícia hľadaného väčšia alebo rovná 0, tak sa prvok našiel a v phl máme pozíciu kde sa nachádza hľadaný prvok

print(‚nachadza sa na pozicii {}‘.format(phl))

else:

print(‚nenachadza sa ‚)