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()))