Big-O가 알고리즘을 완벽하게 설명하는 건 아니다
각각 알고리즘은 Big-O를 가지고 있지만 각각 퍼포먼스는 다르다
n 개의 숫자가 있을때 기준에 따라 순서대로 정렬하는 것
1. Buble Sort 버블정렬
2. Selection Sort 선택정렬
3. Insertion Sort 삽입정렬
4. Merge Sort 병합 정렬
5. Quick Sort 퀵 정렬
6. Heap sort 힙 정렬
ex) 52631 순서대로 정렬하기
2가지를 비교 후 왼쪽값 > 오른쪽값 이면 Swaps서로 교환하기
계속 비교해서 교환하기를 거친다
ex) 52631 순서대로 정렬하기
가장 작은 숫자의 위치를 변수에 저장한다
가장 작은 숫자와 1번째 아이템 스왑
정렬된 1제외하고 계속 진행
적은 숫자찾고 1번째와 스왑하기
버블/선택/삽입 3가지 종류의 알고리즘이 각각 다른데 시간복잡도는 동일하다
그럴 때에는 최악의 시나리오 말고 평균 시나리오를 봐야한다.
Heap 힙 자료구조
- 완전 이진 트리의 일종으로 우선순위 큐를 위해 만들어진 자료구조이다.
- 최댓값과 최솟값을 빠르게 찾을 수 있는 자료구조
최대 힙 트리 : (부모노드의 키 값 >= 자식노드의 키 값)인 완전 이진 트리
최소 힙 트리 : (부모노드의 키 값 <= 자식노드의 키 값)인 완전 이진 트리
알고리즘 | 평균 Avg | 최선 Best | 최악 Worst |
---|---|---|---|
버블 정렬 | O(n²) | O(n²) | O(n²) |
선택 정렬 | O(n²) | O(n²) | O(n²) |
삽입 정렬 | O(n²) | O(n) | O(n²) |
병합 정렬 | O(nlogn) | O(nlogn) | O(nlogn) |
퀵 정렬 | O(nlogn) | O(nlogn) | O(n²) |
힙 정렬 | O(nlogn) | O(nlogn) | O(nlogn) |
셸 정렬 | O(n^1.5) | O(n) | O(n²) |
Sorting Algorithms Animations
https://hyos-inside.tistory.com/11
https://roytravel.tistory.com/37
https://code-lab1.tistory.com/24