본문 바로가기

Basic

재귀의 활용(피보나치 수열) 1. 재귀의 활용(피보나치 수열)
재귀(Recursive) 1. 재귀(Recursive): - 함수(메소드) 내에서 자기자신을 다시 호출하는것을 의미한다. - 완료되지 않은 함수를 다시 호출하는것 - 제일 첫번째로 호출된 함수가 가장 마지막에 종료가 되는 특성 - 탈출 조건이 있어야한다. 없으면 무한 반복 한다. 1) 예시1 - 간단한 출력 12345678910111213141516public class b_01_Recursive { static void Recursive(int num) { if(num
재귀(Recursion) 재귀(Recursion)
성능분석 방법(빅오 표기법) 모든 경우에 있어서 항상 우월한 성능을 보이는 자료구조와 알고리즘은 없다. 그래서 자료구조와 알고리즘을 분석하고 평가 할 수 있어야 한다. 알고리즘의 성능 분석 평가 요소에는 2가지 복잡도가 있다. 복잡도란: 알고리즘의 성능을 객관적으로 평가하는 기준이다. 1. 시간복잡도(time complexity): - 알고리즘이 속도가 얼마나 빠른가? CPU가 얼마나 많은 일을 하는가? - 속도에 해당하는 알고리즘의 수행시간 분석결과를 가리킨다. - 실행에 필요한 시간을 평가한것인데, 실제 시간은 여러 상황과 조건에 따라 달라질수 있다. 그래서 객관적 판단 기준인 연산횟수로 시간 복잡도를 구한다. 1) 시간 복잡도의 평가 방법 - 알고리즘에서 중심이 되는 특정 연산의 횟수를 세어서 평가를 한다. - 처리해야 할 데..
자료구조와 알고리즘 1. 자료구조란(Data Structure)? 1) 데이터를 저장(표현)하는 방법이다. 2) 컴퓨터에서 처리할 자료를 효율적으로 관리하고 구조화시키는 방법이다. 3) 자료를 효율적으로 사용하기 위해서, 자료의 특성에 따라 분류하여 구성,저장하는 방법을 의미. 만약에 집에 책이 2~3권있는데 책 한권을 찾는다고 하면 금방 찾을것이다. 하지만 수천권의 책이 있다고 하자 금방 찾을수 있는가? 그래서 자료구조가 필요하다. Data를 책으로 비유하고, Structure를 책꽃이로 비유해보자. 책꽃이라는 구조에 책을 가나다라 순으로 책들을 정리한다면 책이라는 data를 훨씬 찾기 쉬울것이다. 이렇게 많은 양의 데이터를 효율적으로 관리하기 위한 것이 자료구조이다. 2. 자료구조의 종류 - 가장 간단한 배열도 자료구조..