You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Insertion sort
이미 정렬된 데이터 범위에 정렬되지 않은 데이터를 적절한 위치에 삽입시켜 정렬하는 방법입니다.
시간복잡도는 O(n²) 으로 느린 편이지만 구현하기 쉽습니다. ( 사실 쉽진 않아서 꼭 직접 구현해보는게 좋습니다.)
선택 데이터를 현재 정렬된 범위 내에서 적절한 범위에 삽입하는 것이 삽입 정렬의 핵심입니다.
시간복잡도
O(n²)
원리
index ( for 반복문 초기값) 부터 반복을 시작한다.
현재 index 데이터를 선택한다.
정렬된 범위에서 현재 index 데이터가 삽입될 범위를 탐색한다.
삽입 위치부터 index가 있는 위치까지 shift 연산을 수행한다.
삽입 위치에 현재 선택데이터를 삽입하고 index++ 연산을 수행한다.
전체 데이터 크기만큼 index 가 커질 때까지 반복하고 완료한다.
적절한 삽입 위치를 탐색하는 부분에서 이진 탐색(Binary Search) 등 과 같은 탐색 알고리즘을 사용하면 시간 복잡도를 O(log n) 으로 줄일 수 있습니다.
정렬된 범위 내에선 이진 탐색을 쓸 수 있어용
하지만 찾는 건 빨리 찾았다고 해도 shift 하는 연산이 시간이 많이 걸립니다.
The text was updated successfully, but these errors were encountered:
삽입정렬
Insertion sort
이미 정렬된 데이터 범위에 정렬되지 않은 데이터를 적절한 위치에 삽입시켜 정렬하는 방법입니다.
시간복잡도는 O(n²) 으로 느린 편이지만 구현하기 쉽습니다. ( 사실 쉽진 않아서 꼭 직접 구현해보는게 좋습니다.)
선택 데이터를 현재 정렬된 범위 내에서 적절한 범위에 삽입하는 것이 삽입 정렬의 핵심입니다.
시간복잡도
O(n²)
원리
적절한 삽입 위치를 탐색하는 부분에서 이진 탐색(Binary Search) 등 과 같은 탐색 알고리즘을 사용하면 시간 복잡도를 O(log n) 으로 줄일 수 있습니다.
하지만 찾는 건 빨리 찾았다고 해도 shift 하는 연산이 시간이 많이 걸립니다.
The text was updated successfully, but these errors were encountered: