자료구조 3

정렬, 탐색에 대해 알아보자.

목차 1. 정렬이란? 2. 탐색이란? 3. 정렬과 탐색의 차이점 정렬이란? 정렬(Sort)은 복수의 원소로 주어진 데이터를 정해진 기준에 따라 새롭게 늘어놓은 작업을 말한다. 졍렬을 위해서는 우선 사물들을 서로 비교할 수 있어야 한다. 비교할 수 있는 모든 속성들은 정렬의 기준이 될 수 있다. 정렬시켜야 될 대산을 보통 레코드(Record)라고 부른다. 또한 레코드는 여러 개의 필드로 이루어진다. 이들 중에서 정렬의 기준이 되는 필드를 키(Key) 또는 정렬 키(Sort Key)라고 한다. 단순하지만 비효율적인 방법 삽입 정렬 : 리스트에서 가장 작은 숫자를 선택해서 앞 쪽으로 옮기는 방법. 선택 정렬 : 손 안에 정렬된 카드가 있고 한 장씩 새로 받을 때마다 끼워 넣는 것. 정렬이 안된 부분의 숫자를 ..

자료구조 2024.04.07

Stack, Queue에 대해 알아보자.

목차 1. Stack이란? 2. Queue란? 3. Stack과 Queue의 차이점 1. Stack이란? Stack이란 쌓아 올린다는 것을 의미한다. 따라서 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료구조를 말한다. 스택은 아래의 사진처럼 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있고, top으로 정한 곳을 통해서만 접근을 할 수 있다. top에는 가장 위에 있는 자료는 가장 최근에 들어온 자료를 가리키고 있으며, 삽입되는 새 자료는 top이 가리키는 자료의 위에 쌓이게 된다. 스택에서 자료를 삭제할 때도 top을 통해서만 가능하다. 스택에서 top을 통해 삽입하는 연산을 'push', top을 통한 삭제하는 연산을 'pop'이라고 한다. 스택은 시간 순서에 따라 자료가 쌓여서 가장 마..

자료구조 2024.04.06

DFS와 BFS에 대해 알아보자.

목차 1. DFS란 무엇일까? 2. BFS란 무엇일까? 3. DFS와 BFS의 차이점 1. DFS란 무엇일까? DFS(Depth-Frist Search)는 깊이 우선 탐색이라고도 말한다. 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방식이다. 미로를 탐색할 때 한 방향으로 갈 수 있을 때까지 계속 가다가 더 이상 갈 수 없게 되면 다시 가장 가까운 갈림길로 돌아와서 이곳으로부터 다른 방향으로 다시 탐색을 진행하는 방법과 유사하다. 즉, 넓게 탐색하기 전에 깊이 탐색하는 것이다. DFS는 자기 자신을 호출하는 순환 알고리즘의 형태를 가지고 있다. 이 알고리즘을 구현할 때 가장 큰 차이점은, 그래프 참색의 경우 어떤 노드를 방문했었는지 여부를 반드..

자료구조 2024.03.24