알고리즘/자료구조

알고리즘/자료구조

dfs로 순열, 조합 구하기

2022.02.08 아직까진 조금 어렵다.. 이해가 팍 안되는 느낌 2022.02.14 중복순열 추가 dfs로 순열 구하기 void dfs(int cnt) { if (cnt == m) { for (int i = 0; i < m; i++) { cout m; dfs(0); return 0; } dfs로 조합 구하기 void dfs(int num, int cnt) { if (cnt == m) { for (int i = 0; i < m; i++) cout m; dfs(1,0); return 0; } dfs로 중복조합 구하기 #include using namespace std; int n, m; int arr[9]; bool visited[9]; void dfs(int num, int cnt) { if (cnt ..

알고리즘/자료구조

에라토스테네스의 체 및 소수 구하기

에라토스테네스의 체(sieve of Eratosthenes) = >N 이하의 소수(prime number)를 모두 정확히 찾아내는 도구 case1. O(N^2) #include #include using namespace std; const int MAX = 1000; int main(){ vector v; for(int i=2; i

알고리즘/자료구조

자료구조 2장 - 정렬, 탐색, 재귀, 순열 그리고 복잡도에 대해서

정렬 - 선택 정렬 void sort(int* a, const int n) { // n개의 정수 a[0]부터 a[n-1]까지 비감소순 정렬 for (int i = 0; i < n; i++) { int j = i; //a[i]와 a[n-1]사이에 가장 작은 정수 값을 찾음 for (int k = i + 1; k < n; k++) { if (a[k] < a[j]) { j = k; // 교환 } } swap(a[i], a[j]); } } 제일 작은 정수를 찾아 앞으로 보내는 작업을 계속 반복한다. ​ 탐색 이원탐색(binary search) int binarySearch (int arr[], int low, int high, int key) { while (low key) high = mid - 1; else..

알고리즘/자료구조

자료구조 기본개념

우리가 다룰 자료구조라는 것은, 데이터 구조라고도 하며 크게는 순차구조와 비 순차구조가 있다. ​ 순차구조(sequential structure) 자료의 논리적 순서(logical sequence)가 물리적 인접성으로 표현되는 구조로, 대표적 예시로는 스택(LIFO)과 큐(FIFO)가 있다. ​ 비순차구조(nonsequential structure) 자료의 논리적 순서와 물리적 인접성이 무관한 구조로 논리적 순서를 표현하기 위한 별도의 방법이 필요한 구조로, 대표적 예시로는 트리와 그래프 등이 있다. ​ 자료구조뿐만 아니라 OOP 역시 같이 다룰 예정인데, 객체지향이란, 캡슐화 상속 다형성을 모두 만족하는 프로그래밍 기법을 말한다. ​ 객체지향의 장점 1. 개발의 간소화 - 복잡한 작업을 부분 작업들로 ..

beomseok99
'알고리즘/자료구조' 카테고리의 글 목록