Data Structure

Priority Queue? - 우선순위 큐 : 일반적인 FIFO(First In First Out)의 Queue에서 우선순위의 개념을 도입한 Queue - 데이터에 대한 처리 절차를 순위에 따라 처리하기 위해 사용된다! - 보통 Heap으로 구현되어 사용된다! 언제 사용되나요? - 많고 복잡한 데이터에 대하여 처리하는 순위를 매겨야 할 때 사용된다! - 실제 사례 1. 시뮬레이션 시스템 2. 네트워크 트래픽 제어 3. 운영체제의 작업 스케쥴링 - 삽입, 삭제의 시간복잡도가 O(logN) 이므로 순위를 매길 때, 100만번의 연산을 대략 18번의 연산으로 줄일 수 있다!! Heap? - 완전 이진 트리(Complete Binary Tree)의 일종으로 우선순위 큐를 위하여 만들어진 자료구조다! cf > ..
배열? - 배열은 연속된 자료를 저장하기 위한 선형 자료 구조다 - 배열은 기본적으로 지역적 특성을 가지고 있기 때문에 CPU가 지역 참조를 할 때 속도가 빠르다 - 다시말해서, Cache Hit 의 가능성이 커진다! - 우리는 이미 배열을 사용하는 법 을 알고 있다!! But.... new int[1000] 는 한계성이 있다. * 입력으로 들어오는 개수가 N(미지수)일 때, 어떠한 근거로 메모리를 확보해야 되는가? 에 대한 문제점 --> 정적 배열을 동적 배열로 사용하면 된다!! -> ArrayList ArrayList? - 배열의 크기를 들어오는 자료의 양에 따라서 조절할 수 있다!! - 데이터를 추가하는 데에 시간복잡도는 O(1) 에 처리할 수 있다 ▶ 하지만.... - 동적으로 메모리가 늘어나는 ..
Collection Framework? - 대량의 데이터를 쉽고 효과적으로 처리할 수 있게 표준화된 방법을 제공하는 클래스의 집합이다. - 한마디로, 데이터를 저장하는 자료구조 + 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현했다!! - Java의 기능을 나타내기 위한 클래스, 각각의 Interface를 상속하여 구현이 되어있다 - 모든 클래스가 처럼 제네릭으로 표현되어 있다!! 제네릭이란? - Generic : 데이터의 타입(data type)을 일반화(generalize)한다. - 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일시에 미리 지정하는 방법이다. 그러면 결과적으로 다음과 같은 장점을 얻을 수 있다! ○ Class Method 내부에서 사용되는 객체의 타입 안정성을 높일 수 있다..
huisam
'Data Structure' 태그의 글 목록