Giải thuật:

  • Duyệt từ phần tử thứ đến cuối mảng.
  • Nếu phần tử được duyệt nhỏ hơn phần tử trước (bên trái), dịch nó dần về bên trái cho đến khi nó lớn hơn phần tử bên trái.

Minh họa:

Code Python:

Độ phức tạp:

  • Best:
  • Average:
  • Worst: