def insertion_sort(arr):
"""
Insertion Sort - O(n^2) time complexity
Builds the final sorted array one item at a time.
"""
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr
# Example usage
data = [64, 34, 25, 12, 22, 11, 90]
print("Original:", data)
print("Sorted:", insertion_sort(data.copy()))