forked from kelvins/algorithms-and-data-structures
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlinear_search.py
45 lines (35 loc) · 1.05 KB
/
linear_search.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
"""
Implementação dos algoritmos de busca sequencial e
busca sentinela
"""
def sequential_search(value, array):
"""
Implementação de um algoritmo de busca sequencial.
Argumentos:
value: Any. Valor a ser buscado na lista
array: list. lista na qual o valor será buscado
Retorna o índice do valor em "array" ou -1 caso não exista nela.
"""
for i in range(0, len(array)):
if array[i] == value:
return i
return -1
def sentinel_search(value, array):
"""
Implementação de um algoritmo de busca sentinela.
Argumentos:
value: Any. Valor a ser buscado na lista
array: list. lista na qual o valor será buscado
Retorna o índice do valor em "array" ou -1 caso não exista nela.
"""
array.append(value)
index = 0
while array[index] != value:
index += 1
array.pop()
if index == len(array) - 1:
return -1
return index
some_list = [1, 4, 5, 2, 42, 34, 54, 98, 89, 78, 67]
print(sequential_search(54, some_list))
print(sentinel_search(98, some_list))