Skip to content

Commit 6058f50

Browse files
committed
Create BinarySearchSample.py
1 parent 5ceb747 commit 6058f50

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

BinarySearch/BinarySearchSample.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
def binary_search(arr, val, start, end):
2+
# Binary search to find the correct location to insert the element
3+
while start < end:
4+
mid = (start + end) // 2
5+
if arr[mid] < val:
6+
start = mid + 1
7+
else:
8+
end = mid
9+
return start
10+
11+
def binary_insertion_sort(arr):
12+
for i in range(1, len(arr)):
13+
val = arr[i]
14+
j = binary_search(arr, val, 0, i)
15+
# Insert val at the correct location found by binary search
16+
arr = arr[:j] + [val] + arr[j:i] + arr[i+1:]
17+
return arr
18+
19+
# Example usage
20+
arr = [37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54]
21+
sorted_arr = binary_insertion_sort(arr)
22+
print("Sorted array:", sorted_arr)

0 commit comments

Comments
 (0)