binarni-hledani-print.py 538 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env python3
# Binární vyhledávání v setříděném seznamu

kde = [11, 22, 33, 44, 55, 66, 77, 88]
co = int(input())

# Hledané číslo se nachazí v intervalu [l, p]
l = 0
p = len(kde) - 1

Mareš Martin's avatar
Mareš Martin committed
11
12
13
14
15
16
17
18
19
20
21
22
while l <= p:
    stred = (l+p) // 2
    print(f"[{l},{p}] {kde[stred]}")
    if kde[stred] == co:   # Našli jsme
        print(f"Nalezeno na pozici {stred}")
        break
    elif kde[stred] < co:
        l = stred + 1      # Jdeme doprava
    else:
        p = stred - 1      # Jdeme doleva
else:
    print("Kde nic, tu nic")