본문 바로가기

Algorithm

(17)
ORM(Object Relational Mapping)이란? - ORM이란?"Object-relational mapping' (ORM, O/RM, and O/R mapping) in computer software is a programming technique for converting data between incompatible type systems in object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language. There are both free and commercial packages available that perform object-relatio..
Sort 정리!! 정렬 알고리즘에는, reference : 정렬알고리즘(sorting algorithm) 정리 시간복잡도(best / worst)- Select(선택) 현재 위치에 들어갈 값을 찾아 정렬하는 배열이다. (최솟값을 찾아 앞부터 채워준다.) O(n^2 / n^2) - Insert(삽입) 현재 위치에서, 그 이하의 배열들을 비교하여 자신이 들어갈 위치를 찾아, 그 위치에 삽입하는 배열 알고리즘이다.(뒤로가면 앞의 값과 비교해서 값을 삽입해 줌) O(n / n^2) - Bubble(버블) 매번 연속된 두개 인덱스를 비교하여, 정한 기준의 값을 뒤로 넘겨 정렬하는 방법이다. (뒤부터 쌓는다 최대값을) O(n / n^2) - Merge(합병) 합병 정렬은 분할 정복(Divide and conquer) 방식으로 설계된..
Practice Algorithm (171009) - BFS 바이러스 - bfs 그대로 가져다 쓸 수 있었음 - 양방향으로 데이터를 넣어줘야 한다, edgeList - 중복 문제 - 토마토 문제!! - direction array로 처리 - queue 사용 - checker 사용 Source-Code : The-G
bitwise operator(비트연산자) == bitwise operator(비트연산자) == - & (AND)- | (OR)- ^ (XOR)- ~ (NOT)- > (RIGHT SHIFT) source-code : The-G
Permutation(순열) Algorithm == Permutation(순열) Algorithm ==- 순차적으로 swapping 해주네!! code def perm(input, i): if i == len(input)-1: print(input) else: for j in range(i, len(input)): input[i], input[j] = input[j], input [i] perm(input, i+1) input[i], input[j] = input[j], input [i] perm([1,2,3], 0) - 사용예 - 여행할 때, 방문 순서 경우의 수! source-code : The-Greference : 상상개발자
Dijkstra Algorihm == 최단경로검색 Dijkstra Algorithm == - Find Shortest Path - Weighted graph를 볼 수 있다. 표를 작성하는데!! 1. A에서 출발한다고 하고, A와 연결된 node들의 cost(비용)와 어디에서 왔는지 첫번째 줄에 적어준다. 2. C가 가장 cost가 적기 때문에 C를 두번째 줄에 적어준다. C node와 연결된 node는 A를 제외하고 E가 있다. E까지 가는데 누적 cost가 3이기 때문에 3과 이전노드 C를 적어준다. 나머지 빈칸은 copy over 해준다. 3. 2번째 줄에서, C노드를 제외하고 가장 최소의 cost를 보니 B와 E가 있는데, B를 보겠다. 4. 3번째 줄에 B를 적어주고, 2번의 과정을 반복해 준다. 단, 이전 cost보다 큰 누적..
BFS(Breadth First Search) == BFS(Breadth First Search) == vertexList = ['0', '1', '2', '3', '4', '5', '6'] edgeList = [(0,1), (0,2), (1,0), (1,3), (2,0), (2,4), (2,5), (3,1), (4,2), (4,6), (5,2), (6,4)] adjacencyList = [[] for vertex in vertexList] for edge in edgeList: adjacencyList[edge[0]].append(edge[1]) adjacencyList = [[1,2], # vertex 0 [0,3], # vertex 1 [0,4,5], # vertex 2 [1], # vertex 3 [2,6], # vertex 4 [2], # ..
DFS(Depth First Search) / DFS to find cycle in graph == Depth First Search(깊이 우선 탐색) == vertexList = ['0', '1', '2', '3', '4', '5', '6'] edgeList = [(0,1), (0,2), (1,0), (1,3), (2,0), (2,4), (2,5), (3,1), (4,2), (4,6), (5,2), (6,4)] adjacencyList = [[] for vertex in vertexList] for edge in edgeList: adjacencyList[edge[0]].append(edge[1]) adjacencyList = [[1,2], # vertex 0 [0,3], # vertex 1 [0,4,5], # vertex 2 [1], # vertex 3 [2,6], # vertex 4 [2],..

반응형