순차 탐색(Sequential Search)

순차 탐색(Sequential Search)

데이터를 찾아보자! 이 강좌에서 알게될 ‘순차 탐색(Sequential Search)’는 바로 데이터가 모인 데이터 배열이 있으면 이 데이터 배열의 처음부터 끝까지 차례대로 비교하여 원하는 데이터를 찾아내는 알고리즘입니다. 이 순차 탐색은 데이터를 따로 조작할 필요가 없어 단순하지만 비효율적이라는 단점을 지니고 있습니다. 추가로 순차 탐색은 단방향으로 탐색을 수행하기 때문에 선형 탐색(Linear Search)라고 부르기도 합니다. 위에서 말했듯이, 순차 탐색 알고리즘은 … 더 읽기

정렬 알고리즘(sorting algorithm)

정렬 알고리즘(sorting algorithm)

데이터를 빠르고 쉽게 정렬 알고리즘(sorting algorithm) 정렬의 사전적 의미는 ‘데이터를 특정한 조건에 따라 일정한 순서가 되도록 다시 배열하는 일’를 말하는 것으로 예를들자면 학교에서 각 반 학생들을 키 순으로 세우는 것, 제목 순으로 정리하는 것 등 이것 모두가 ‘정렬’입니다.지금부터 소개하고자 하는 ‘정렬 알고리즘(sorting algorithm)’을 사용하면 편하게 데이터를 찾을 수 있게됩니다. 버블 정렬(Bubble Sort) 지금부터 소개하고자 하는 … 더 읽기

힙(Heap)

힙(Heap)

특별한 트리를 기본으로 하는 자료구조! 오늘은 ‘힙(Heap)’이란 자료구조에 대해서 알아보려고 합니다. 이 힙(Heap)이란 자료구조는 위키백과에 따르면 ‘특별한 트리를 기본으로 하는 자료구조이다.’라고 설명되어 있습니다. 여기서 특별한 트리란 우리가 전에 배운 완전 이진트리를 말하며, 힙 자료구조는 최대 힙(Max Heep)과 최소 힙(Min Heep)으로 나뉘며 이러한 힙은 최댓값 또는 최솟값을 짧은 시간 내에 찾기 위해서 만들어진 자료구조입니다. 최대 힙이란 … 더 읽기

트리(Tree)

트리(Tree)

나무와 유사한 계층적 구조! 오늘 배우게 될 트리(Tree)란 자료구조는 나무와 유사하게 계층적 구조를 띄고 있는 자료구조입니다. 트리 그대로죠. 나무에 뿌리와 가지, 잎이 있듯 트리라는 자료구조에서도 나무와 뿌리 그리고 가지가 존재합니다. 여기서 뿌리 노드는 루트 노드라 하고, 가지와 잎은 그대로 가지 노드, 잎 노드와 같이 부릅니다. 트리가 응용되는 분야에는 무엇이 있을까요? 트리의 주된 목적은 탐색이며, 의사 … 더 읽기

링크드 큐(Linked Queue)

링크드 큐(Linked Queue)

원형이 아닌 직선으로! 이번엔 순환 큐(Circular Queue)가 아닌, 링크드 큐(Linked Queue)입니다. 링크드가 하니 링크드 리스트가 떠오르지 않나요? 비슷합니다. 링크드 큐의 노드에도 그 노드의 다음을 가리키는 주소 값을 가지고 있으며, 노드가 전단(Front) -> 후단(Rear) 방향으로 이어져 있습니다. 그래도 전단에서 제거 연산이 이루어진다는 것과, 후단에서 삽입 연산이 이루어진다는 것은 바뀌지 않습니다. 링크드 큐의 구현은 상당히 간단합니다. 링크드 … 더 읽기