반응형

알고리즘 10

디딤돌 알고리즘 C언어 [온라인 무료 제공 책 본문 및 동영상]

책 소개 이 책은 프로그래머의 기초 지식인 알고리즘을 이론적인 접근과 구현을 다루고 있습니다. 알고리즘은 문제를 해결하기 위한 논리의 집합이예요. 문제 해결 방법으로 분류하면 반복 알고리즘, 재귀 알고리즘, 분할 정복, 동적 프로그래밍, 탐욕 알고리즘 등이 있죠. 컴퓨터 프로그래밍을 업무로 하는 이들에게 알고리즘은 실질적인 구현에서 필수적으로 필요합니다. 그리고 이들을 다루는 책은 매우 다양하죠. 이론으로 접근하는 책들은 다양한 알고리즘을 다루지만 실질적인 구현없이 추상적으로 소개할 때가 많습니다. 그리고 실질적인 구현도 다루는 책들은 아주 기초적인 알고리즘을 중심으로 다루고 있어요. 알고리즘은 문제 해결 방법에 따라 반복 알고리즘, 재귀 알고리즘, 분할 정복 알고리즘, 동적 프로그래밍, 탐욕 알고리즘 ..

그래프에서 최단 거리 찾기 알고리즘, 다익스트라 알고리즘 [C++ 소스]

그래프에서 최단 거리 찾기 알고리즘다익스트라 알고리즘 [C++ 소스] "본문 내용"은 언제나 휴일 본 사이트에 있습니다.//Edge.h#pragma once#include using namespace std;class Edge{ string vt1; string vt2; int weight;public: Edge(string vt1,string vt2,int height); bool Exist(string vt)const; bool Exist(string vt1, string vt2)const; string Other(string vt)const; void View()const; int GetWeight()const; };//Edge.cpp #include "Edge.h" #include using na..

너비 우선 탐색(Breath First Search) 그래프를 정점과 간선 집합으로 표현 [C++ 소스]

너비 우선 탐색(Breath First Search) 그래프를 정점과 간선 집합으로 표현 [C++ 소스] "본문 내용"은 언제나 휴일 본 사이트에 있습니다.//Edge.h#pragma onceclass Edge{ int vt1; int vt2;public: Edge(int vt1,int vt2); bool Exist(int vt)const; bool Exist(int vt1, int vt2)const; int Other(int vt)const; void View()const; };//Edge.cpp #include "Edge.h" #include using namespace std; Edge::Edge(int vt1,int vt2) { this->vt1 = vt1; this->vt2 = vt2; } bo..

너비 우선 탐색(Breath First Search) 그래프를 인접 행렬 표현 [C++ 소스]

너비 우선 탐색(Breath First Search) 그래프를 인접 행렬 표현 [C++ 소스] "본문 내용"은 언제나 휴일 본 사이트에 있습니다.//Graph.h#pragma once#include #include using namespace std;typedef vector Neighbors;class Graph{ const int vn;//정점의 개수 int **matrix;//인접 행렬 public: Graph(int vn); ~Graph(void); void AddEdge(int start, int goal);//간선 추가 void ViewNeighbors()const; void ViewNeighbor(int vt)const; Neighbors FindNeighbors(int vt); };//Gr..

깊이 우선 탐색(Depth First Algorithm) 그래프를 정점과 간선 집합으로 표현 [C++ 소스]

깊이 우선 탐색(Depth First Algorithm) 그래프를 정점과 간선 집합으로 표현 [C++ 소스] "본문 내용"은 언제나 휴일 본 사이트에 있습니다.//Edge.h#pragma onceclass Edge{ int vt1; int vt2;public: Edge(int vt1,int vt2); bool Exist(int vt)const; bool Exist(int vt1, int vt2)const; int Other(int vt)const; void View()const; };//Edge.cpp #include "Edge.h" #include using namespace std; Edge::Edge(int vt1,int vt2) { this->vt1 = vt1; this->vt2 = vt2; } ..

동적 프로그래밍(Dynamic Programming) 순열 문제 [C++ 소스]

동적 프로그래밍(Dynamic Programming) 순열 문제 [C++ 소스] "본문 내용"은 언제나 휴일 본 사이트에 있습니다.//Heuristic.h#pragma once#include #include using namespace std;typedef vector Bucket;typedef Bucket::iterator BIter;typedef Bucket::const_iterator CBIter; class Heuristic;typedef vector Heues;typedef Heues::iterator HIter;typedef Heues::const_iterator CHIter; class Heuristic{ Bucket original; Bucket out;public: Heuristic(Bu..

병합 정렬 (Merge Sort) 알고리즘 [C++ 소스]

병합 정렬 (Merge Sort) 알고리즘 [C++ 소스] "본문 내용"은 언제나 휴일 본 사이트에 있습니다.//common.h#pragma once#include #include #include #include #include #include using namespace std; class Member{ string name; int num;public: Member(string name,int num) { this->name = name; this->num = num; } string GetName()const { return name; } int GetNum()const { return num; } void View()const { cout

힙 정렬 (Heap Sort) 알고리즘 [C++ 소스]

힙 정렬 (Heap Sort) 알고리즘 [C++ 소스] "본문 내용"은 언제나 휴일 본 사이트에 있습니다. //common.h (정렬 알고리즘에 공통으로 사용할 내용) #pragma once #include #include #include #include #include #include using namespace std; class Member { string name; int num; public: Member(string name,int num) { this->name = name; this->num = num; } string GetName()const { return name; } int GetNum()const { return num; } void View()const { cout

선택 정렬(Selection Sort) [C++ 소스]

선택 정렬(Selection Sort) [C++ 소스] "본문 내용"은 언제나 휴일 본 사이트에 있습니다.//Program.cpp#include "common.h" template //선택 정렬(base:배열의 시작 주소, n: 원소 개수, compare:비교 논리)void selection_sort(data *base, size_t n, compare com){ for(size_t i=0; in) { size_t min = i;//min=i for(size_t j=i+1; jn) { if(com(base[min],base[j])>0)//조건(compare(base[min], base[j]) > 0) { min = j;//min := j } } swap(base[i],base[min]);//교환(base..

반응형