프로그래밍/자료구조
[Sort]간단한 정렬 알고리즘
윈우
2016. 6. 26. 13:35
간단한 정렬 알고리즘
1. 버블 정렬
- 버블 정렬의 이해
- 소스 코드
- 성능 평가
* 비교 횟수 : 두 데이터간의 비교연산 횟수
* 이동 횟수 : 위치의 변경을 위한 데이터의 이동 횟수
-> 실제로 시간 복잡도에 대한 빅-오(O)를 결정하는 기준은 '비교 횟수'이다. 하지만, 이동 횟수에 관한 성능까지 체크 한다면 동일 한 빅-오 연산에 대한 세밀한 성능평가가 가능하다.
- 비교 횟수 : O(n^2)
- 이동 횟수
-> 정렬이 되어 있는 경우 : 한번도 이동이 발생 하지 않음
-> 역순으로 정렬 되어 있는 경우 : O(n^2)
(실제론 비교 횟수의 3배 소요)
2. 선택 정렬
- 선택 정렬의 이해
- 소스 코드
- 성능 평가
- 비교 횟수 : O(n^2)
- 이동 횟수 : O(n) Worst Case와 Best Case관계 없이 동일
3. 삽입 정렬
- 삽입 정렬의 이해
- 소스 코드
- 성능 평가
- 비교 횟수 : O(n^2)
- 이동 횟수 :
Worst Case -> O(n^2)
Best Case -> 한번도 발생 안함