from __future__ import absolute_import
from __future__ import print_function
from __future__ import division


def insertion_sort(a_list):
    """Insertion Sort algortihm.

    Time complexity: O(n^2).
    """
    gen = ((i, v) for i, v in enumerate(a_list) if i > 0)
    for (i, v) in gen:
        key = i
        while key > 0 and a_list[key - 1] > v:
            a_list[key] = a_list[key - 1]
            key -= 1
        a_list[key] = v


def main():
    a_list = [54, 26, 93, 17, 77, 31, 44, 55, 20]
    insertion_sort(a_list)
    print(a_list)


if __name__ == '__main__':
    main()

@@ -194,16 +194,137 @@
  O(n%5E2).
+%0A%0A    Although its complexity is bigger than the ones with O(n*logn), %0A    one advantage is the sorting happens in place.
 %0A    %22%22%22

Revise docstring by adding advantage