my head

Insertion Sort ↩️

Back to algorithms list.

Functionality

Insertion Sort is a straightforward comparison-based sorting algorithm that builds the final sorted list one element at a time. It works by iterating through the list and placing each element into its correct position relative to the already sorted portion of the list. The algorithm repeatedly picks the next element and inserts it into the sorted portion of the list by shifting larger elements to the right. This process is akin to how one might sort a hand of playing cards.

Advantages

  1. Simplicity: The algorithm is easy to understand and implement, making it a great choice for educational purposes.
  2. Efficiency on Small or Partially Sorted Data: Insertion Sort performs well on small datasets or lists that are already partially sorted, with a best-case time complexity of O(n).
  3. Stability: Insertion Sort is stable, maintaining the order of elements with equal values.
  4. In-place Sorting: It requires no additional memory space, as it sorts the list within the original array.

Disadvantages

  1. Inefficiency on Large Datasets: The algorithm has an average and worst-case time complexity of O(n²), making it slow and impractical for large datasets.
  2. High Number of Shifts: In the worst case, each new element requires shifting all the elements in the sorted portion, leading to numerous shifts, which can be computationally expensive.

Conclusion

Insertion Sort is particularly useful for small datasets or as part of more complex algorithms, such as hybrid sorting methods. While it is not suitable for large datasets, its simplicity and efficiency on nearly sorted data make it a valuable tool in specific contexts.

Source: Article about insertion sort on wikipedia.org