목록data structure (8)
connecting the dots
오늘은 검색 알고리즘에 대해 다뤄보도록 하겠습니다. '검색'이란 단어, 정말 익숙하죠? 무언가 특정한 데이터를 찾아나갈 때 사용하곤 합니다. 검색의 과정을 정리하며 더 자세하게 설명해보자면 어떠한 특정 항목에 관심이 있고 이는 우리가 주목하고 있는 것입니다. 여기서 이 주목하는 것을 키(key)라고 합니다. 검색 기법의 종류 검색 기법은 다양합니다. 우리는 각 기법의 장단점을 고려하여 알고리즘을 선택해야 합니다. 배열을 활용한 검색 알고리즘에는 일반적으로 세 가지 방법이 있습니다. - Linear Search : 무작위로 늘어놓은 데이터 모임에서 검색을 수행 - Binary Search : 일정한 규칙으로 늘어놓은 데이터 모임에서 아주 빠른 검색을 수행 - Hash : 추가 / 삭제가 빈번하게 일어나는 ..
LinkedList란 ? LinkedList는 ArrayList와는 다르게 엘리먼트와 엘리먼트 간의 연결(link)을 통해 리스트를 구현합니다. 배열과는 다르게 LinkedList는 데이터의 위치가 흩어져있기 때문에 서로 연결되어있어야 합니다. LinkedList는 자료구조에서 다양하게 사용되기 때문에 개념을 잘 이해해야 합니다. 용어를 정리해봅시다. array list에서는 엘리먼트라는 이름을 사용했지만 linked list와 같이 연결된 엘리먼트들은 노드(node, 마디, 교점의 의미) 혹은 버텍스(vertex, 정점, 꼭지점의 의미)라고 부릅니다. 이런 용어들은 연결성이 강조된 표현이라고 생각하시면 됩니다. 엘리먼트, 노드, 버텍스 모두 같은 의미입니다. LinkedList의 특징 - LinkedL..
지난 포스팅에서는 Java에서 자주 쓰이는 ArrayList에 대해 알아보았습니다. 오늘은 ArrayList와 비슷하게 쓰이는 Vector의 개념과 활용방법에 대해 알아보겠습니다. Vector란? Vector는 ArrayList와 동일한 내부 구조를 가지고 있습니다. 정수 인덱스를 통해 값에 접근할 수 있고, 동적으로 메모리를 할당합니다. 현재의 Vector 클래스는 Collections 프레임워크와 완벽하게 호환됩니다. Vector와 ArrayList 비교 - 동기화 Vector가 동기화된다면 ArrayList는 동기화되지 않은 상태입니다. Vector가 동기화 된다면 ArrayList는 동기화가 되지 않은 상태입니다. 쉽게 말해 Vector는 한번에 하나의 스레드만 접근 가능하며, ArrayList는..
ArrayList 정의 ArrayList는 Java에서 가장 많이 사용되는 자료구조입니다. 배열처럼 인덱스와 Value로 구성되어 있습니다. 배열과 동일하게 연속된 메모리 공간을 사용하지만, 배열과의 차이점은 ArrayList는 크기가 가변적으로 변한다는 점입니다. 따라서, 만약 데이터를 추가하고자 한다면 더 큰 용량의 메모리를 할당해줍니다. ArrayList 사용 Java에서는 ArrayList를 제공하므로 여러분이 직접 ArrayList를 구현할 일은 없을 것입니다. 그럼 ArrayList를 사용하는 법을 알아봅시다. - ArrayList 생성 import java.util.ArrayList; ArrayList numbers = new ArrayList(); ArrayList numbers = new..