2021/09/16 2

09. 퀵 정렬 (Quick Sort)

정의 - 정렬 알고리즘의 꽃 - 기준점(Pivot) 을 정해서, 기준점보다 작은 데이터는 왼쪽(left) 큰 데이터는 오른쪽(right)으로 모으는 함수 - 각 왼쪽 (left), 오른쪽 (right) 는 재귀용법을 사용해서 다시 동일함수를 호출하여 위 작업을 반복한다 - 함수는 왼쪽 (left) + 기준점 (pivot) + 오른쪽 (right) 을 리턴한다 - 왼쪽 퀵 정렬 일 때 0번째가 가장 작은 수 일 경우 최악의 성능이 나옴 (빠르긴 하나, 상황에 따라 성능이 차이가 날 수 있기 때문에 안정적이지 않은 편이다. 그 에 비해 같은 분할정복의 정렬 중 병합 정렬은 항상 동일한 성능을 가지고 있어 안정적이고 퀵 정렬보다는 아니지만 그에 준수 한 속도를 가지고 있다) 분석 - 병합정렬 (Merge So..

07. 재귀함수 (Recursive Call) - 경우의 수 구하기

재귀 함수 정수 n 이 입력으로 주어졌을 때 n을 1,2,3 의 합으로 나타낼 수 있는 방법의 수 구하기 public class RecursiveCall5 { public static void main(String[] args) { int num = 4; int numberOfCases = recursiveSum(num); System.out.println(numberOfCases); } private static int recursiveSum(int num) { if (num == 1) return 1; else if (num == 2) return 2; else if (num == 3) return 4; return recursiveSum(num - 1) + recursiveSum(num - 2) +..