자료구조

ArrayList (배열 리스트) 배열을 이용한 리스트이다. ArrayList 의 장점 - 인덱스가 있어서 정렬이 되어있을 때, 이진탐색을 이용한 탐색이 쉽다. ArrayList 의 단점 - 컴파일 시 배열의 크기를 정해주어야 한다. - 삽입 및 삭제 시 배열을 하나씩 당겨주거나, 하나씩 밀어주어야 한다. 데이터 양이 많지만 삽입/삭제가 거의 없고, 데이터의 접근이 빈번히 이뤄질 때 유리하다. LinkedList (연결 리스트) 데이터를 담을 공간과 다음 데이터를 가르키는 포인터 하나가 구조체를 이룬다. LinkedList 의 장점 - 논리적 공간의 제약이 없다. - 삽입 및 삭제 시, 시간복잡도가 O(1)이다. LinkedList 의 단점 - 탐색 시, 시간복잡도가 O(n)이다. 삽입/삭제가 빈번히 이..
재귀를 이용해 C언어로 피보나치 수열을 구현 피보나치 수열 규칙 1. 처음 2개의 숫자는 1이다. 2. 3번째 값부터는 앞의 두 수를 더한 값이다. // 피보나치 수열 int fibo(int n) { if(n
함수의 재귀적 호출을 이용하여 c언어로 하노이 타워를 구현 하노이 탑 규칙 1. 가장 위의 원판만 이동 가능함 2. 작은 원판 위로 큰 원판이 올라갈 수 없음 3. 최소 이동횟수로 이동해야함 4. 한번에 하나의 원판만 이동해야 함 제일 밑의 원판을 옮기기 위해 위의 원판들을 B로 옮긴다 (A->B) -> hanoi(n-1,a,c,b); 제일 밑의 원판을 A에서 C로 옮겨야 한다. (A->C) -> printf("%d 원반이 %c -> %c\n",n,a,c); 제일 밑의 원판을 C로 옮겼으므로 B에 있던 원판들을 다시 A로 옮긴다 (B->C)/p> -> hanoi(n-1,b,a,c); // 하노이 타워 void hanoi(int n, char a, char b, char c) { if(n==0) { ret..
시간 복잡도 '속도' 에 해당하는 알고리즘의 수행시간 분석결과이다. 시간복잡도를 표현하는 방법에는 Big-oh 표기법이 있다. O(n)으로 표기한다.n 은 데이터의 개수이다. 공간 복잡도 '메모리 사용량' 에 대한 분석결과이다. Big-oh 표기법 - 최악의 경우를 기준으로 계산해야 한다.- 최고차항의 차수가 Big-oh가 된다. ex) n2+2n+9 -> O(n2) 데이터의 개수가 100개일 때, 최악의 경우 10000번 연산을 실행한다.
푸쿠이
'자료구조' 태그의 글 목록