선택정렬은 맨앞에서부터 순차적으로 선택한 위치와 다른 위치에 있는 값을 서로 비교하여 원하는 자리에 위치시키는 정렬을 의미함
버블정렬은 앞에 있는 값과 뒤에 있는 값을 비교하여 내가 원하는 순서대로 정렬하는 것을 뜻합니다.버블정렬 특성상 내가 정렬하고자하는 값이 맨 뒤로 차곡차곡 옮겨지기에 Selection Sort와는 반대로 정렬이 끝난 뒤에 있는 값을 신경써줄 필요가 없다.선택정렬과 마찬
삽입정렬은 각 숫자를 적절한 위치에 삽입하는 형식으로 문제를 풀게 된다. 그래서 맨 앞부터 정렬이 시작되게 된다.삽입정렬의 시간복잡도도 n개의 목록을 두번 거치기에 Big-O는 O(N^2)이 되게 된다.Insertion Sort Code이미지 출처도움 자료
퀵 정렬은 분할 정복 알고리즘(문제를 나눌 수 없는 작은 단위까지 나누고 다시 각각을 합치면서 답을 얻는 알고리즘)이다.pivot값이라는 기준값을 가지게 되며, pivot값은 대개 맨 앞에 있는 원소를 기준으로 하게 된다.퀵정렬은 분할정복 알고리즘으로써 최선의 알고리즘
Merge Sort도 quick Sort처럼 분할 정복 알고리즘에 해당하는 알고리즘입니다. Merge Sort는 정확히 반으로 나누어서 서로 비교하여 하나로 합쳐가는 정렬 방식입니다.Quick Sort는 pivot 값으로 인하여 최악의 경우 O(N^2)의 알고리즘 성능
Heap Sort는 고급 프로그래밍 기법에서도 자주 사용될 정도로 중요한 알고리즘에 속한다. Heap Sort는 Heap tree structure를 사용하는 정렬방법이다. Heap은 최솟값이나 최댓값을 빠르게 찾아내기 위해 완전 이진 트리를 사용하는데, 최대힙은 부모
Counting Sort는 특정 숫자의 범위에서만 숫자의 갯수를 세는 알고리즘입니다. 따라서 데이터는 한번만 접근하면 됩니다.Counting Sort는 전체 데이터를 한번씩 훑고 지나가면서 갯수만 세어주면 되기 때문에 big-oh는 O(N)입니다.이미지 출처자료 출처
Breath First Search는 너비를 기준으로 탐색을 수행하는 알고리즘입니다.최단경로를 찾아주는 점에서 최단길이를 보장해야 할 때 많이 사용하며, queue를 활용하여 탐색을 수행합니다.BFS는 1과 가까운 노드부터 탐색을 하는 알고리즘이며, 이것을 토대로 다른
Depth First Search은 Breath First Search와는 다르게 이진트리의 맨 하단까지 내려가서 search를 하는 것을 우선적으로 하는 탐색이다.stack형 구조를 가지고 있다는 것이 특징이다. 하지만 stack을 사용하지 않고도 구현은 가능하다.위
Union Find는 그래프 알고리즘이며, 서로소 집합(Disjoint Set)알고리즘이라고도 한다. 여러개의 노드가 존재할때 서로 다른 두개의 노드가 현재 같은 노드에 속하는지 안하는지 판별하기 위한 알고리즘이다.노드를 맨처음에 자기 자신을 가르키도록 만들어주고, 노
Kruskal's Algorithm은 가장 적은 비용으로 노드들을 연결하기 위한 알고리즘이다.모든 노드를 최소한의 비용으로 연결시키면 되기 때문에 모든 간선 정보를 오름차순으로 정렬하고 비용이 적은 간선부터 차례대로 연결해주면 된다.1\. 정렬된 순서에 맞게 그래프에
포인터를 사용하여 이진트리를 구성하게 되며, 포인터를 통해 왼쪽 자식 노드와 오른쪽 자식 노드를 표기하게 된다. 중앙 노드 처리부분을 어디에 놓느냐에 따라 preorder traversal, inorder traversal, postorder traversal로 나뉜