본문 바로가기

Algorithm3

재귀 알고리즘 상향식/하향식 분석 방법(with 피보나치수열) HTML 삽입 미리보기할 수 없는 소스 1. 재귀 함수 분석 방법 재귀 함수의 분석 방법에는 1. 하향식 분석과 2. 상향식 분석 두 가지가 있다. 하향식 분석은 마지막에 종료되는 부분에서 반대로 이동하는 분석법이다.(콜스택의 가장 아랫부분) 상향식 분석은 가장 먼저 종료되는 부분에서 반대로 이동하는 분석법이고(콜스택의 가장 윗부분) 자세한 것은 아래 예시를 통해 설명한다. 2. 피보나치수열 문제를 통한 예시 private static int fibonacci(int n){ // 0, 1, 1, 2, 3, 5 if(n >= 2){ int result = fibonacci(n-1) + fibonacci(n-2); return result; } else{ return n; } } 우선 위의 예시는 자바 코드.. 2024. 1. 27.
재귀 알고리즘 팩토리얼 예제 HTML 삽입 미리보기할 수 없는 소스 1. JAVA 코드를 통한 팩토리얼 예제 소스는 다음과 같다. 1. public static void main(String[] args) { 2. 3. int no = 4; 4. System.err.println("결과 : "+factorial(no)); 5. } 6. 7. public static int factorial(int n){ 8. System.out.println("n : "+n); 9. 10. if(n > 0){ 11. int recursiveResult = factorial(n - 1); 12. int result = n * recursiveResult; 13. System.out.println("factorial(" + n + ") = " + n .. 2024. 1. 25.
퀵 정렬 예시 & 버블 정렬과 속도 비교 HTML 삽입 미리보기할 수 없는 소스 1. 퀵 정렬 개념 퀵 정렬은 이름 그대로 정렬 알고리즘 중 빠른 속도를 내기 때문에 붙여진 이름이다. 간단한 구조를 가지고 있는 버블 정렬과 선택 정렬등과는 방식이 확연히 다르고 학습에 대한 난이도가 확 뛰는 게 느껴졌다.정렬하는 대략적인 방식은 아래와 같다. (자세한 방식은 아래 코드 참조) 1. 중앙값을 기준으로 왼쪽 숫자의 오른쪽 숫자를 중앙값과 비교한 뒤 조건에 따라 스왑 한다. 2. 그 후 인덱스를 위의 그림과 같이 개념적으로 쪼개며 같은 행위를 반복한다. 3. 위의 반복은 재귀함수와 스택을 이용한 반복문으로 구현한다. 2. JAVA를 통한 퀵 정렬 구현 예시 public static void quickSort(int arr[], int left, int.. 2024. 1. 24.