본문 바로가기

개발/자료구조

(3)
1-5 순환 순환 : 수행도중 자기 자신을 호출해서 문제를 해결 - 정의 자체가 순환적일때 사용 - 예) 팩토리얼 구하기, 피보나치 수열, 하노이탑, 이진 탐색, 병합 정렬, 트리, 자료구조, 프랙털 등 - 무한 호출시, ,StackOerflow Error 발생 - 따라서 자기자신 호출시, 무한 호출 방지해야 함 순환 메소드의 구성 - 기본 케이스 : 스스로를 더이상 호출하지 않는 부분 - 순환 케이스 : 스스로를 호출하는 부분 무한 호출 방지를 위해 변수 또는 수식의 값이 호출시마다 순환 case에서 감소되어 최종적으로 기본 case를 실행하도록 제어해야 함 (메소드의 마지막 부분에서 순환하는)꼬리 순환은 반복문으로 변환하는 것이 효율적 순환은 프로그램의 가독성을 높일 수 있는 장점을 갖지만, 시스템 스택 사용으로..
1-4 자바 언어에 대한 기본적인 지식 클래스 선언 : 클래스 이름 항상 대문자 Comparable : 객체의 하나의 멤버만을 기준으로 객체들을 정렬할 때 사용 compareTo public interface Comparable { public int compareTo (T other); } public class 클래스이름 implements Comparable { ... public int compareTo(클래스이름 other) ... } } x.compartTo(y) - xy면 양수 리턴 comparator : 여러 다른멤버들에 대해서도 나열할 수 있게 해줌 import java.util.Comparator; public interface Comparator { pulic int compare (T first, T second); } ..
1-3 수행시간의 점근표기법 자료구조 : (프로그램에서 저장하는 데이터에 대해 탐색, 삽입, 삭제 등의 연산을 효율적으로 수행하기 위해서) 일련의 동일한 타입의 데이터들을 정돈해서 저장한 구성체이다. 추상데이터타입 : 데이터와 그 데이터에 대한 추상적인 연산들 - 구체적인 구현의 의미는 포함하고 있지 않다. - 이 추상적인 데이터 타입을 구체적으롤 구현하는 것이 자료구조이다. 추상데이터타입 : 자바 인터페이스 (윤곽) 자료구조 : 자바 클래스 (구조) 수행시간 분석 효율성 측정하는 게 중요해 1. 시간복잡도 : 수행시간은 짧고 2. 공간복잡도 : 메모리 공간은 덜 사용하는 게 더 효율적인 알고리즘 대부분은 공간복잡도 말구 시간복잡도로 구성 시간복잡도 측정은 어떻게 할까? 직접 재?? NO 시간복잡도 : 알고리즘 실행 동안 사용된 기..