Kezdőoldal » Számítástechnika » Programozás » E keresésnél mit rontok el,...

E keresésnél mit rontok el, hogy végtelen ciklus keletkezik? (bővebben lent)

Figyelt kérdés

A logaritmikus keresést szerettem volna megvalósítani, tömb esetén. Valamiért nem működik.

program kereses;


var

t:array[0..999] of longint;

elem,i,u,v:longint;

l:boolean;

begin

for i:=0 to high(t) do

t[i]:=i;

elem:=97;

u:=0;

v:=high(t);

l:=false;

while (u<=v) and (not l) do

begin

i:=u+v div 2;

if t[i]=elem then l:=true;

if t[i]<elem then u:=i+1;

if t[i]>elem then v:=i-1;

end;

writeln(i);

end.



2020. okt. 23. 13:44
 1/6 anonim ***** válasza:
19%
Azt most megmondom neked, hogy normális változó nevek és formázás nélkül a kutya se fogja neked kibogarászni.
2020. okt. 23. 14:03
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
Nem izgat a véleményed. Minden változatában az algoritmusnak ezeket a változóneveket használják (u,v,i).
2020. okt. 23. 14:27
 3/6 anonim ***** válasza:
A tömböt feltöltő for ciklust nem kellene enddel lezárni?
2020. okt. 23. 14:50
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:
Mivel "begin" sincs, ezért nem, egyetlen utasítás van a ciklusmagban, ekkor nem kell begin-end páros.
2020. okt. 23. 14:54
 5/6 A kérdező kommentje:

A következő érdekes dolog történik (kiiratva "i" értékét minden lépésben:

499

249

124

61

123

123

123

A 61 után elindul jobbra (elem nagyobb) és 123 számnál szépen végtelen ciklusba kerül.

2020. okt. 23. 14:58
 6/6 A kérdező kommentje:

Az a fránya zárójelezés maradt ki. :-)

i:=(u+v) div 2;

Valamint ennél egyszerűbb, kevesebb összehasonlítást végző logaritmikus keresést végrehajtó algoritmust is találtam :-)

2020. okt. 23. 15:19

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!