1. 버블 정렬
1.1. 동작
1.2. 특징
•
큰 값 부터 정렬된다
•
원소 하나를 정렬하기 위해서 swap이 여러 번 일어날 수 있다
•
stable 정렬이다
1.3. 성능
•
최상의 경우 시간 복잡도
◦
이미 정렬된 상태일 때 최상의 경우
◦
정렬되지 않은 영역을 순차적으로 탐색 후 swap이 한번도 일어나지 않으면 정렬 종료
◦
원소 개수 이 증가할 때 수행 시간이 증가한다
◦
시간 복잡도:
•
최악의 경우 시간 복잡도
◦
내림차순으로 정렬된 경우
◦
인덱스 의 자리를 정렬된 상태로 만들기 위해선 번의 비교가 필요하다
◦
마지막 인덱스 자리부터 인덱스 1번 자리까지 정렬된 상태로 만들면 모든 원소가 정렬된다
◦
원소 개수를 이라고 할 때 비교 횟수는
◦
시간 복잡도:
•
공간 복잡도
◦
원소 개수가 늘어나도 필요한 메모리 크기는 같다
◦
공간 복잡도:
2. 선택 정렬
2.1. 동작
2.2. 특징
•
작은 값부터 정렬된다
•
한 원소를 정렬할 때 swap은 한 번만 일어난다
•
unstable 정렬이다
◦
ex) 일 때 숫자 기준으로 선택 정렬하면 가 된다
2.3. 성능
•
시간 복잡도
◦
최솟값을 찾을 때 정렬되지 않은 원소들 모두 탐색해야 한다
◦
원소가 이미 정렬된 상태여도 그 원소가 정렬된 상태인지 확인하기 위해 최솟값 탐색을 한다 → 최악의 경우와 최상의 경우 시간 복잡도가 같다
◦
원소 개수가 개 일 때 비교 횟수는 이므로
◦
시간 복잡도:
•
공간 복잡도
◦
원소 개수가 늘어나도 필요한 메모리 크기는 같다
◦
공간 복잡도:
3. 삽입 정렬
3.1. 동작
3.2. 특징
•
작은 값부터 정렬된다
•
stable 정렬이다
3.3 성능
•
최상의 경우
◦
이미 원소들이 정렬된 경우
◦
각 원소를 정렬된 자리에 있는지 한번 씩만 확인 후 수행 종료
◦
원소 개수 이 증가하면 수행 시간이 증가
◦
시간 복잡도:
•
최악의 경우
◦
내림차순으로 정렬된 경우
◦
원소 개수가 개이고 인덱스 1번부터 번 원소의 삽입 위치를 찾기 위한 총 비교 횟수는 이므로
◦
시간 복잡도:
•
공간 복잡도
◦
원소 개수가 늘어나도 필요한 메모리 크기는 같다
◦
공간 복잡도: