알고리즘 2

정렬

정렬 어떤 데이터 그룹이 주어졌을 때 이를 주어진 순서대로 나열하여 재배치하는 행위 정렬은 이진 탐색의 전처리 과정이기도 하다. 정렬의 종류: 버블 정렬, 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬, 합병 정렬 안정 정렬 같은 값을 가지는 복수의 원소들이 정렬 후에도 정렬 전과 같은 순서를 가지는 것 버블 정렬 시간 복잡도: O(n^2) 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교차한다. 한번 순회할 때마다 마지막 하나가 정렬되므로 원소들이 거품이 올라오는 것처럼 보여서 버블정렬 이라고 한다. 과정 1회전 첫 번째 자료 7을 두 번째 자료 4와 비교하여 교환하고, 두 번째의 7과 세 번째의 5를 비교하여 교환하고, 세 번..

알고리즘 2023.07.19

DFS/BFS

탐색 탐색이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 의미한다. DFS / BFS는 대표적인 탐색 알고리즘인데, 이 두 알고리즘은 스택과 큐의 자료구조로 구성된다. 스택 박스를 아래에서부터 위로 차곡차곡 쌓는 형태의 자료구조 - 선입후출 혹은 후입선출의 자료구조를 갖는다. 큐 대기 줄처럼 먼저 온 사람이 먼저 나가게 되는 형태의 자료구조 - 선입선출 구조의 자료구조를 갖는다. 재귀 함수 DFS / BFS를 구현하려면 재귀 함수를 알아야한다. 재귀 함수는 자기 자신을 다시 호출하는 함수이다. 재귀 함수의 종료 조건 재귀 함수는 함수 내에 종료 조건을 꼭 명시해야한다. 명시하지 않으면 무한 호출되어 프로그램이 정상작동하지 않게 된다. 재귀 함수의 수행은 스택 자료구조를 이용한다. 함수를 계속 ..

알고리즘 2023.06.19