이진 트리는 형태에 따라 크게 세가지로 분류할 수 있다.1\. 포화 이진 트리 (full binary tree)2\. 완전 이진 트리 (complete binary tree)3\. 기타 이진 트리이미지 출처: https://limkydev.tistory.co
자료의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열부분과 비교하여 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. 즉 주어진 배열에서 앞에서부터 하나의 인덱스를 뽑아 자신의 위치를 찾아서 넣는 것이다. 특징삽입정렬은 배열의 맨 처음, 0번째 인덱스는
가장 쉽게 떠올릴 수 있는 방법 중 하나가 아닐까 싶다. 1학년 때 c언어 수업에서 가장 먼저 접했던 버블 소트,,,다시 정리해보자.버블 정렬은 바로 인접한 두 개의 원소를 비교하여 정렬하는 알고리즘이다. 단순하게 둘을 비교해서 그 순서가 제대로 되어있지 않으면 swa
임의의 위치에 있는 원소를 확인/변경: O(1)원소를 끝에 추가 : O(1)마지막 원소 제거 : O(1)임의의 위치에 원소를 추가/임의 위치의 원소 제거 :O(N) 왜? 앞으로 뒤로 땡겨야 하기 때문 v1.size()는 unsigned int를 반환하기 때문에 만
Breadth First Search다차원 배열에서 각 칸을 방문할 때 너비를 우선으로 방문하는 알고리즘시작하는 칸을 큐에 넣고 방문했다는 표시를 남김큐에서 원소를 꺼내어 그 칸에 상하좌우로 인접한 칸에 대해 3번을 진행해당 칸을 이전에 방문했다면 아무것도 하지 않고,
재귀란 자기 자신을 호출하여 해결하는 기법이다. 재귀에서의 가장 기본적인 원칙은 Divide and Conquer, 즉 순환이 일어날 때마다 문제의 크기는 줄어드는 것이다. factorial, 이항계수, 이진트리 알고리즘, 이진탐색, 하노이 탑을 구현하는데 유용한 방식
퀵 정렬 업로드중.. 퀵 정렬이란 분할 정복 알고리즘의 하나로 평균적으로 매우 빠른 수행 속도를 자랑하는 정렬 방법이라고 한다. 균등하게 배열을 자르는 합병정렬과는 달리 퀵 정렬은 배열을 비균등하게 분할한다. 과정 퀵 정렬 과정 피봇 정하기: 배열 중 하나를 골라