반응형 병합정렬3 재귀와 분할 정복의 예시 문제 5.1 재귀 함수의 이해예시: 팩토리얼동작 원리팩토리얼 n!은 n × (n-1)!로 정의됩니다.n이 1이거나 0이면 1을 반환(기저 조건).그렇지 않으면 n × factorial(n-1)을 반환(재귀 호출).호출 스택에 함수가 쌓였다가, 기저 조건에 도달하면 반환되며 결과가 계산됩니다.코드 (Python)def factorial(n): """ n의 팩토리얼을 재귀적으로 계산합니다. 기저 조건: n이 0 또는 1이면 1 반환 재귀 호출: n * factorial(n-1) """ if n == 0 or n == 1: return 1 # 기저 조건(Base case)# 재귀적으로 자기 자신을 호출 return n * factorial(n-1)# 예시 실행pr.. 2025. 4. 18. 코딩테스트에서 자주 출제되는 정렬 알고리즘별 예시 문제 4.1 선택 정렬 (Selection Sort)원리: 매번 최소값을 선택하여 앞쪽으로 이동시킴.시간 복잡도: O(n²)공간 복잡도: O(1)코드 (Python)def selection_sort(arr): n = len(arr) for i in range(n): # i번째 위치에 올 최소값 찾기 min_idx = i for j in range(i+1, n): if arr[j] 4.2 버블 정렬 (Bubble Sort)원리: 인접한 두 원소를 비교하며 큰 값을 오른쪽으로 이동.시간 복잡도: O(n²)공간 복잡도: O(1)코드 (Python)def bubble_sort(arr): n = len(arr) for i in range(.. 2025. 4. 18. 정렬(Sort) 알고리즘 4.1 선택 정렬 (Selection Sort)선택 정렬은 가장 간단한 정렬 알고리즘 중 하나로, 배열에서 가장 작은(또는 큰) 값을 찾아 맨 앞(또는 맨 뒤)과 교환하는 과정을 반복합니다. 즉, 전체 배열에서 최솟값을 찾아 첫 번째 위치와 바꾸고, 그 다음에는 두 번째부터 끝까지에서 최솟값을 찾아 두 번째 위치와 바꾸는 방식입니다. 이 과정을 배열의 끝까지 반복하면 정렬이 완료됩니다. 비교 횟수는 항상 n(n-1)/2로, 데이터의 정렬 정도와 상관없이 느린 편이지만, 구현이 매우 쉽고 추가 메모리가 거의 필요하지 않다는 장점이 있습니다.4.2 버블 정렬 (Bubble Sort)버블 정렬은 인접한 두 원소를 비교하여 크기가 잘못된 경우 서로 교환하는 과정을 반복하는 정렬 알고리즘입니다. 한 번의 패스가 .. 2025. 4. 18. 이전 1 다음 반응형