데브허브 | DEVHUB | 자료구조 - 삽입정렬
- 삽입 정렬은 사람이 카드를 정렬하는 방식과 유사하게, 배열의 정렬된 부분에 다음 요소를 삽입하여 전체를 정렬하는 알고리즘입니다. 🃏
- 버블 정렬보다 연산 횟수가 적고 실무에서 더 많이 사용되며, 요소들이 부분적으로 또는 모두 정렬되어 있을 때 작업을 일찍 종료하는 효율성을 가집니다. 🚀
- 정렬 과정은 배열의 첫 요소를 정렬된 부분으로 간주하고, 그 다음 요소를 가져와 정렬된 부분 내의 올바른 위치에 삽입하는 방식으로 진행됩니다. ➡️
- 최악의 경우 시간 복잡도는 O(n^2)이지만, 배열이 이미 정렬되어 있을수록 내부 반복문 실행이 줄어들어 더 빠르게 완료됩니다. ⏱️
- 코드에서는 바깥쪽
for 루프가 삽입할 요소를 선택하고, 안쪽 while 루프가 정렬된 부분에서 역순으로 탐색하며 요소를 밀어내고 key 값을 삽입할 위치를 찾습니다. 🔄
- 탐색을 제외한 오버헤드가 매우 적고, 배열의 크기가 작을 때 특히 효율적이어서 소규모 데이터 정렬에 유용하게 사용됩니다. ✨