Insertion Sort (삽입 정렬)

알고리즘 복습하기 정렬편 2탄2025-01-25
#Algorithm#Sort

알고리즘 포스팅 하며 복습하기 (정렬편) 📊

  1. Selection Sort (선택 정렬)
  2. Insertion Sort (삽입 정렬)
  3. Bubble Sort (버블 정렬)
  4. Quick Sort (퀵 정렬)

삽입 정렬이란?

2번째 요소부터 이미 정렬된 배열 부분과 비교하여 위치를 찾아 삽입하여 정렬하는 알고리즘입니다.

post image

코드

 
const array = [1, 4, 2, 3, 5];
 
const insertionSort = (arr) => {
  // 2번째 요소부터 시작
  for (let i = 1; i < arr.length; i++) {
    // 이미 정렬된 배열 부분과 비교
    for (let j = i; j > 0; j--) {
      // 현재 요소가 이전 요소보다 작으면 교환
      if (arr[j] < arr[j - 1]) {
        let temp = arr[j];
        arr[j] = arr[j - 1];
        arr[j - 1] = temp;
      } else {
        // 현재 요소가 이전 요소보다 크면 정렬 완료
        break;
      }
    }
  }
  return arr;
};
 
console.log(insertionSort(array)); // [1, 2, 3, 4, 5]
 

시간 복잡도

  • 삽입 정렬은 이미 정렬된 배열에 대해서는 매우 빠르게 동작합니다.
  • 최악의 경우 배열의 끝까지 탐색해야 하기에 시간 복잡도는 **O(n^2)**입니다.
  • Big O 표기법은 최악의 경우를 기준으로 표기