-
정렬 알고리즘Coding Test 2023. 12. 3. 20:40
정렬 알고리즘
: 데이터를 일정한 순서로 배치하는 것
1. 버블 정렬
for 문을 두번 사용해서 시간복잡도는 O(n^2)
배우기가 간단함
2. 삽입정렬
버블정렬보다는 효율적일지도?
-> 어느정도 정렬이 되어있을 때의 시간복잡도가 O(n)으로 상당히 효율적임
3. 병합정렬 (Merge sort)
리스트를 계속해서 반으로 나눠 요소가 한 개뿐인 리스트로만 남았을 때, 이들을 올바른 순서대로 다시 합치는 재귀정렬 알고리즘.
🔶 O(logN) == O(log₂N)을 의미한다.
O(n * log(n)) 의 시간복잡도
이진 검색이 정확히 O(logN) 알고리즘 방식으로 동작한다.
이진 검색을 빅 오 표기법의 관점에서 어떻게 설명할까?
배열의 크기가 3일 때 이진 검색은 2단계
배열의 크기가 7일 때 이진 검색은 3단계
배열의 크기가 15일 때 이진 검색은 4단계
배열의 크기가 100일때 이진 검색은 7단계
배열의 크기가 10,000일때 이진 검색은 13단계
배열의 크기가 1,000,000일때 이진 검색은 20단계'Coding Test' 카테고리의 다른 글
문자열 정렬 알고리즘 - 애너그램, 팰린드롬, 암호화 / 복호화 (0) 2023.12.04 탐색 알고리즘 (1) 2023.12.03 [Swift] 재귀 알고리즘 (0) 2023.11.28 정렬 알고리즘: 버블정렬, 선택정렬 (1) 2023.11.19 [Swift] 크기가 작은 부분 문자열 (0) 2023.11.15