Docy

Lineáris keresés

Estimated reading: 6 minutes 0 views

Hívjuk be a random, Python bővítményt
Megadjuk az „N” értékét (ez lesz a lista hossza)
Töltsük fel az „A” nevű listát (ez a kódrészlet egy N hosszúságú listát hoz létre, amelynek elemei 1 és 100 között véletlenszerűen generált egész számok, és a range() függvény segítségével hozza létre a listát.)
Ki írjuk az „A” nevű listát, zárójelek és egyébb jelek nélkül

				
					import random

N = 20
A = [random.randint(1, 100) for _ in range(0,N)]
print(*A)
				
			
				
					i = 0
				
			

Létrehozunk egy változót, i-t, amelynek kezdőértéke 0

				
					van = False
				
			

Létrehozunk egy logikai változót, van-t, amelynek kezdőértéke False.

				
					while i < N and not van:
				
			

Ez a ciklus addig fut, amíg az i kisebb, mint N és van hamis. Az and azt jelenti, hogy mindkét feltételnek igaznak kell lennie ahhoz, hogy a ciklus tovább fusson.

				
					if A[i] % 3 == 0:
				
			

Az if utasítás azt vizsgálja, hogy az aktuális elem hárommal osztható-e. Ha igen, akkor az if blokk fut le.

				
					van = True
				
			

Az if utasítás azt vizsgálja, hogy az aktuális elem hárommal osztható-e. Ha igen, akkor az if blokk fut le.

				
					i += 1
				
			

Az i változó értékét 1-gyel növeljük.

				
					if van:
				
			

Az if utasítás azt vizsgálja, hogy a van változó értéke True-e. Ha igen, akkor az if blokk fut le.

				
					print(f'\n 3, Az első hárommal osztható szám {A[i-1]}')
				
			

A print() függvény segítségével kiírjuk az első hárommal osztható szám indexét és értékét. Az i-1 érték adja meg az indexet, mert az i változó a ciklus végén már 1-gyel nagyobb, mint az utolsó vizsgált index.

				
					else:
				
			

Ha a van változó értéke False volt, akkor az else blokk fut le.

				
					print(f'\n3, Nincs hárommal osztható szám a sorozatban')
				
			

A print() függvény segítségével kiírjuk, hogy a listában nincs hárommal osztható szám. 

Teljes kód:

				
					i = 0
van = False
while i < N and not van:
    if A[i] % 3 == 0:
        van = True
    i += 1
if van:
    print(f'\n 3, Az első hárommal osztható szám {A[i-1]}') # mert az i += 1 akkor is le fut
else:
    print(f'\n3, Nincs hárommal osztható szám a sorozatban')
				
			
				
					van = False
				
			

Létrehozunk egy logikai változót, van-t, amelynek kezdőértéke False.

				
					for i in range(N):
				
			

Létrehozunk egy for ciklust, amely az A lista összes elemére végigmegy.

				
					if A[i] % 3 == 0:
				
			

Az if utasítás azt vizsgálja, hogy az aktuális elem hárommal osztható-e. Ha igen, akkor az if blokk fut le.

				
					van = True
				
			

Az if blokkban található utasítás beállítja a van változó értékét True-ra.

				
					break 
				
			

Az if blokkban található break utasítás miatt az i változó értéke nem fog tovább növekedni, amikor találunk egy hárommal osztható számot.

				
					if van:
				
			

Az if utasítás azt vizsgálja, hogy a van változó értéke True-e. Ha igen, akkor az if blokk fut le.

				
					if van:
				
			

Az if utasítás azt vizsgálja, hogy a van változó értéke True-e. Ha igen, akkor az if blokk fut le.

				
					print(f'\n 4, Az első hárommal osztható szám {A[i]}')
				
			

A print() függvény segítségével kiírjuk az első hárommal osztható szám indexét és értékét. Az i változó értéke adja meg az indexet, amelyet az if blokkban találtunk meg.

				
					else:
				
			

Ha a van változó értéke False volt, akkor az else blokk fut le.

				
					print(f'\n4, Nincs hárommal osztható szám a sorozatban')
				
			

A print() függvény segítségével kiírjuk, hogy a listában nincs hárommal osztható szám.

Teljes kód:

				
					van = False
for i in range(N):
    if A[i] % 3 == 0: #10-nél a nincs lehetőséget kell ki írnika 
        van = True
        break
if van:
    print(f'\n 4, Az első hárommal osztható szám {A[i]}') # itt nem történik meg az inek a növelése, nem kell a -1
else:
    print(f'\n4, Nincs hárommal osztható szám a sorozatban')
				
			

Összességében tehát a kód az első hárommal osztható szám keresésére szolgál egy adott listában két különböző módon. Az első módszer egy while ciklust használ, amely addig fut, amíg megtalálja az első hárommal osztható számot. A második módszer egy for ciklust használ, amely a lista összes elemére végigmegy, és a break utasítás segítségével megáll, amikor megtalálja az első hárommal osztható számot.

A lineáris keresést leggyakrabban akkor használják, amikor egy adott elem jelenlétét kell ellenőrizni egy rendezetlen listában vagy tömbben. A lineáris keresés hatékony megoldás lehet, ha a lista vagy tömb mérete nem túl nagy, és nem rendelkezünk előzetes információval az elem helyéről.

Például, ha egy adott számot vagy sztringet kell keresni egy nagy méretű adatsoron belül, és nem tudjuk, hogy pontosan hol van, akkor a lineáris keresés lehet a megfelelő megoldás. A lineáris keresést alkalmazzák gyakran az adatbázisok lekérdezési folyamataiban is, amikor egy adott rekordot kell megtalálni egy nagy adatbázisban.

Azonban, ha a lista vagy tömb mérete nagyon nagy, vagy ha az elemek rendezettek, akkor hatékonyabb megoldás lehet más keresési algoritmusok használata, mint például a bináris keresés, amely gyorsabb keresési sebességet biztosít a rendezett adatszerkezetekben.

Leave a Comment

Megosztom ezt a leírást
Tartalom