컴퓨터공학 💻 도서관📚
선택정렬, 삽입정렬 . 1 본문
선택 정렬
처리되지 않은 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복합니다
내가 쓰던 선택 정렬과 본질은 같지만 형태만 다른 코드
본질 : 0번째 인덱스에 가장 작은 수를 넣기
여기선 가장 작은 수가 있는 인덱스 번호를 찾는 방식이다
파이썬에서 변수 스와프 하는 방법
array[i], array[min] = array[min], array[i]
c++ 표준 라이브러리에서 제공하는 swap 함수
삽입 정렬
처리되지 않은 데이터를 하니씩 골라 적절한 위치에 삽입한다
(데이터를 하나씩 확인하면서 이 데이터가 어느 위치에 들어가는게 맞는지 매번 계산한다)
선택정렬에 비해 구현나이도가 높은 편이지만, 일반적으로 더 효율적으로 동작한다
i 번째 요소가 좌측으로 이동하며 맞는 위치를 찾고 그 위치에 삽입한다
자바는 포인터와 같은 기능을 제공하지 않고 별도로 표준 라이브러리에서 swap 연산을 제공하지 않기 때문에
정석적으로 세 줄에 걸쳐서 swap을 한다
삽입 정렬은 데이터 형태에 따라 시간 복잡도가 달라진다.
이미 정렬되어 있는 상태의 데이터는 O(N) 의 시간 복잡도를 가진다
'✅🌲강의 복습 노트 > 이코테2021 알고리즘 훈련' 카테고리의 다른 글
퀵 정렬 코드 . 3 (0) | 2024.11.12 |
---|---|
퀵 정렬 개념 . 2 (0) | 2024.11.11 |
DFS&BFS 문제유형 . 7 (1) | 2024.11.05 |
DFS&BFS 유형 문제 . 6 (2) | 2024.11.04 |
BFS . 5 (0) | 2024.11.03 |
Comments