Recursion Recursive Algorithm, Programming, Definition어떤 일이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적(Recursive)이라고 한다. 즉, 자기 호출을 말한다.어떤 문제 안에 크기만 다를 뿐, 성격
유클리드 호제법은 두 수의 최대공약수(GCD)를 구하는 알고리즘이다.두 수 A, B에 대하여 (A>B 라고 가정)A를 B로 나눈 나머지가 0이면 B, 아니면 나머지와 B의 최대공약수가 답이다만일 A < B이면, A와 B를 바꾼다.A % B(나머지)를 계산한다.만일
데이터 집합에서 원하는 값을 가진 요소를 찾아낸다. 검색에 사용할 알고리즘은 계산 시간이 짧은 것을 선택하면 되지만 검색 이외의 작업이 필요하다면 용도나 목적, 실행 속도, 자료구조 등을 고려하여 알고리즘을 선택해야 한다. Linear Search Binary Sear
Binary Search요소가 오름차순 혹은 내림차순으로 정렬된 배열에서 검색하는 알고리즘이다. p1 검색 범위의 맨 앞 인덱스pc 중앙 인덱스pr 마지막 인덱스1\. apc < key일 때,검색 범위를 apc+1 ~ apr로 좁힌다. p1의 값을 pc+1로 업데
어떤 목적을 달성하거나 결과물을 도출하기 위해 거쳐야 하는 일련의 과정들을 말한다. 알고리즘 문제를 풀 때, 해답을 찾기 위해 여러 방법을 사용한다. 알고리즘은 복잡도complexity가 낮을 수록 효율적이다. 즉 수행 시간이 짧거나, 기억 공간을 적게 사용하는 알고리
장점단점재귀적 프로그램을 만드는 방법오른쪽 하단 4를 ( i , j )라고 해보자.이곳에 도달하기 직전에 방문할 수 있는 곳은 ( i , j-1)과 ( i-1, j), 2곳이 있다. 중에서 합이 높은 쪽을 택하면 된다.
앞에서 공부했는데 아직도 구하는게 좀 어렵다. 연습을 해보자...알고리즘의 예상되는 수행 시간을 분석할 때 사용한다. 수행 시간은 실행환경에 따라 다르게 측정되기 때문에 기본 연산의 실행 횟수로 수행 시간을 평가한다. 시간 복잡도는 일반적으로 빅오 표기법으로 나타낸다.
알고리즘에 입력 되는 데이터의 크기에 따라 수행 시간과 차지하는 공간이 측정된다. 그리고 수행 시간과 차지하는 공간을 통해서 효율적인 알고리즘인지를 판단한다. 여기서 점근적 분석이란, 정확한 것이 아니고 대략 이 정도의 수행시간이 나온다라는 것을 측정하는 용도로 사용한
ArrayList는 Collection Framework 중 List 인터페이스에 해당된다. 그래서 저장 순서가 유지되고 중복을 허용한다는 특징이 있다. 여러 개의 데이터를 쉽고 효율적으로 관리할 수 있는 표준화된 방법을 제공하는 클래스 중 하나이다. 출처 TCPSCH
Linked List는 Array List와 다르게 엘리먼트와 엘리먼트 간의 연결(link)을 이용해서 리스트를 구현한 것을 의미한다. 그래서 이름도 Linked List이다. Linked List에서 연결은 무엇일까? 또 연결이 아닌 것이 무엇인지 생각해보자.먼저 컴
🎇Linked List 구현하기 객체 생성 LinkedList.java Main.java 노드 구현 노드는 실제로 데이터가 저장되는 그릇과 같은 것이다. 자바는 객체지향 언어이기 때문에 노드는 객체로 만들기 딱 좋은 대상이며, 노드 객체는 리스트의 내부 부품이기