2021/09/09 2

04. 재귀함수 (Recursive Call)

정의 재귀용법(=재귀함수) 란? - 함수 안에서 동일한 함수를 호출하는 형태 - 재귀 호출은 스택의 전형적인 예이다 - 함수는 내부적으로 스택처럼 관리된다 TIP 고급 정렬 알고리즘에서 재귀용법을 사용하므로 고급 정렬 알고리즘을 익히기 전에 재귀용법을 먼저 익히는 것이 좋다 재귀 용법의 이해 (예시 - 팩토리얼) - factorial(num) 은 서번의 factorial 함수를 호출해서 곱셈을 한다 - 일종의 num - 1 번의 반복문을 호출한 것과 동일하다 - factorial () 함수를 호출할 때 마다 지역변수 num 이 생성된다 - 시간 복잡도 O(num-1) , 공간 복잡도 O(num) 이므로 둘 다 O(n) 이다 재귀함수 (Recursive Call) public class RecursiveC..

03. 삽입 정렬 (Insertion Sort)

정의 - 삽입 정렬은 두 번째 인덱스 부터 시작한다 - 해당 인덱스 (key 값) 앞에 있는 데이터 (B) 부터 비교해서 key 값이 더 작으면 B 값을 뒤 인덱스로 복사한다 - 이를 key 값이 더 큰 데이터를 만날 때 까지 반복하고, 큰 데이터를 만난 위치 바로 뒤에 Key 값을 이동 버블정렬이 조금 비효율적인 면이 있기에 비교횟수를 효율적으로 줄이기 위해서 고안된 방법이 삽입정렬입니다. 삽입 정렬은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 정렬 방법입니다. 버블정렬은 비교대상의 메모리 값이 정렬되어 있음에도 불구하고 비교연산을 하는 부분이 있는데 삽입정렬은 기본적으로 버블정렬의 비교횟수를 줄이고 크기가 적은 데이..