keresőalgoritmus
Leírás:
Időbonyolultság:
Python példa:
def linear_search(arr, target):
for i, value in enumerate(arr):
if value == target:
return i
return -1
arr =
target = 7
print(linear_search(arr, target)) # Output: 2
Leírás:
Időbonyolultság:
Python példa:
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr == target:
return mid
elif arr < target:
left = mid + 1
else:
right = mid - 1
return -1
arr =
target = 5
print(binary_search(arr, target)) # Output: 4
Leírás:
Időbonyolultság:
Python példa:
import math
def jump_search(arr, target):
n = len(arr)
step = int(math.sqrt(n))
prev = 0
while arr < target:
prev = step
step += int(math.sqrt(n))
if prev >= n:
return -1
for i in range(prev, min(step, n)):
if arr == target:
return i
return -1
arr =
target = 9
print(jump_search(arr, target)) # Output: 4
Leírás:
Időbonyolultság:
Python példa:
def interpolation_search(arr, target):
low, high = 0, len(arr) - 1
while low <= high and target >= arr and target <= arr:
pos = low + ((target - arr) * (high - low)) // (arr - arr)
if arr == target:
return pos
elif arr < target:
low = pos + 1
else:
high = pos - 1
return -1
arr =
target = 7
print(interpolation_search(arr, target)) # Output: 3
Leírás:
Időbonyolultság:
Python példa:
def dfs(graph, start, visited=None):
if visited is None:
visited = set()
visited.add(start)
print(start, end=" ")
for neighbor in graph:
if neighbor not in visited:
dfs(graph, neighbor, visited)
graph = {
0: ,
1: ,
2: ,
3:
}
dfs(graph, 2) # Output: 2 0 1 3
Leírás:
Időbonyolultság:
Python példa:
from collections import deque
def bfs(graph, start):
visited = set()
queue = deque()
visited.add(start)
while queue:
node = queue.popleft()
print(node, end=" ")
for neighbor in graph:
if neighbor not in visited:
visited.add(neighbor)
queue.append(neighbor)
graph = {
0: ,
1: ,
2: ,
3:
}
bfs(graph, 2) # Output: 2 0 3 1
Algoritmus | Adatszerkezet | Időbonyolultság (Legrosszabb) | Megjegyzések |
---|---|---|---|
Lineáris keresés | Lista | Egyszerű, de lassú. | |
Bináris keresés | Rendezett lista | Gyors, de rendezett adatra van szükség. | |
Jump keresés | Rendezett lista | Közepesen gyors. | |
Interpolációs keresés | Rendezett lista | Egyenletes eloszlású adatokra hatékony. | |
DFS | Gráf | Mélységi keresés gráfokban/fákban. | |
BFS | Gráf | Szélességi keresés gráfokban/fákban. |