본문 바로가기

03. LinkedList 03. Linked ListLinked List, 연결리스트.. 처음에 과제할때 가장 애먹었던 자료구조였다 ㅠㅜ노드의 삽입과 삭제를 구현할때 욕나오도록 짜증이 났던 기억이 새록새록 배열의 경우 인덱스를 통해 빠르게 원소에 접근할 수 있지만 자료의 삽입과 삭제가 불편하다는 단점이있다.자료의 신속한 삽입과 삭제가 용이한 자료구조는 바로 링크드 리스트, 연결리스트이다. 연결 리스트는 말그래도 연결(링크드)되어있다. 리스트는 노드(Node)로 이루어져있으며, 각각의 노드는 데이터와 포인터로 구성되어있다. 노드에 있는 포인터는 바로 이전의 노드나, 바로 다음 노드를 주소를 저장하고있다. 연결 리스트는 노드의 중간에서도 데이터의 추가, 삭제가 빠르게 가능하지만, 데이터의 검색에 있어서는 O(n)의 시간이 걸리는 단.. 더보기
02. 배열의 순차탐색, 이진탐색 배열을 배우고 배열을 탐색하는 방식인 순차탐색과 이진탐색에 대해 공부하였다. 순차탐색( = 선형탐색, 직렬탐색 ) 말그대로 순차적으로 탐색하는 방법인데, 가장 단순하다.가장 처음부터 끝까지 반복문을 돌려가면서 탐색한다.시간복잡도는 O(n) 이진탐색탐색해야할 부분이 정렬되어있다는 가정하에 반으로 반복해서 나누어가며 탐색한다. 배열의 경우 배열의 중앙에 저장된 값이 탐색값과 일치하는지를 검사하고, 일치하지 않는 경우탐색범위를 반으로 줄여서 다시 중앙에 저장된 값과 검사한다.탐색값과 일치할 경우 해당 배열의 인덱스를 리턴 시간복잡도는 O(log n) 또, 기존에 만들었었던 Set자료형을 Integer객체를 추가하도록 변경하여서 순차탐색과 이진탐색의 성능을 측정해보았다.배열의 크기가 작을 때에는 순차탐색이 더빠.. 더보기
01. 배열( Array ) 자료구조 시간에 가장 먼저 배웠던 것은 c언어 코딩할때 배웠었던 배열! 이였다. 아무 생각없이 편하게 사용했던 배열도 자료구조의 일종이였다. 배열은 간단하게 동일한 자료형들이 묶여있다고 생각하면 된다.int형끼리 모여 int형 배열, char형끼리 모여 char형 배열..( 다른 자료형들끼리 모여져있으면 C에서는 구조체!라고한다. ) Java에서는 배열을 하나의 객체라고 본다고한다!배열을 사용하기 위해서는 배열을 선언을 해주어야한다.위와 같이 선언하여 사용할 수 있다. 배열은 배열의 인덱스를 통해 접근할 수 있는데예를들어 int arr[] = new int[5]; 와같이 선언하였을 경우 배열의 인덱스는 0부터 크기 -1 까지 만들어진다. int형 배열의 경우는 선언시 0으로 초기화 되고, char형은 n.. 더보기