01. Example:
def binaryInsertionSort(data): for i in range(1, len(data)): temp = data[i] pos = binarySearch(data, temp, 0, i) + 1 for k in range(i, pos, -1): data[k] = data[k - 1] data[pos] = temp def binarySearch(data, key, start, end): if end - start <= 1: if key < data[start]: return start - 1 else: return start mid = (start + end)//2 if data[mid] < key: return binarySearch(data, key, mid, end) elif data[mid] > key: return binarySearch(data, key, start, mid) else: return mid list01 = input('Enter the list of numbers: ').split() list01 = [int(x) for x in list01] binaryInsertionSort(list01) print('Sorted list: ', end='') print(list01)
Output:
Enter the list of numbers: 320 420 140 500 185 60 200 80 10 100 Sorted list: [10, 60, 80, 100, 140, 185, 200, 320, 420, 500]