Initial commit
This commit is contained in:
53
1.1.py
Normal file
53
1.1.py
Normal file
@@ -0,0 +1,53 @@
|
||||
def binarySearch(array, element):
|
||||
|
||||
left = 0 # Левая граница
|
||||
right = len(array) - 1 # Правая граница
|
||||
middle = 0 # Середина
|
||||
|
||||
while left <= right:
|
||||
middle = (left + right) // 2 # Шаг 1
|
||||
if array[middle] == element:
|
||||
return middle
|
||||
|
||||
if array[middle] < element: # Шаг 2
|
||||
left = middle + 1
|
||||
else:
|
||||
right = middle - 1
|
||||
|
||||
return -1
|
||||
|
||||
|
||||
def binarySearchWithInsert(array, element):
|
||||
|
||||
left = 0 # Левая граница
|
||||
right = len(array) - 1 # Правая граница
|
||||
middle = 0 # Середина
|
||||
|
||||
while left <= right:
|
||||
middle = (left + right) // 2 # Шаг 1
|
||||
if array[middle] == element:
|
||||
return middle
|
||||
|
||||
if array[middle] < element: # Шаг 2
|
||||
left = middle + 1
|
||||
else:
|
||||
right = middle - 1
|
||||
|
||||
# Вставляем элемент на позицию, согласно сортировке
|
||||
array.insert(left, element)
|
||||
|
||||
return -1
|
||||
|
||||
|
||||
def main():
|
||||
array = [1, 2, 4, 6, 7, 9, 13, 15]
|
||||
|
||||
item = int(input("Find: "))
|
||||
|
||||
print(binarySearchWithInsert(array, item))
|
||||
|
||||
print(array)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user