본문 바로가기

전체 글121

자료구조와 알고리즘 8장 이중 연결 리스트 TIL 날짜 2023.12.12 Contents 이중 연결 리스트의 의미 단일 연결 리스트와 이중 연결 리스트의 차이점 이중 연결 리스트의 작업 과정 Class를 이용한 이중 연결 리스트 메소드 활용방법 이중 연결 리스트의 의미 의미: 각 노드가 데이터만 가지고 있는게 아니며 이전 노드와 다음 노드를 가리키는 두 개의 포인터를 가지고 있는 연결리스트 장점 역방향 순회 가능: 각 노드가 이전 노드와도 연결되어 있기에 역방향으로 탐색이 쉽게 가능 삽입과 삭제 용이: 원하는 인덱스의 데이터를 찾을 때 이진 알고리즘을 활용해 효율적으로 수행 단점 메모리 사용량 증가: 포인터를 2개 가지므로 메모리 사용량이 단일에 비해 많다. 구현 복잡성: 단일 리스트보다 구현이 복잡하기에 추가적인 작업이 필요하다. 단일 연결 .. 2023. 12. 13.
자료구조와 알고리즘 7장 단일 연결 리스트 (2) TIL 날짜 2023.12.11 Contents 연결 리스트 와 배열의 빅오 표기법 연결 리스트 사용 케이스 Class를 이용한 단일 연결 리스트 메소드 활용방법 (2) 단일 연결 리스트의 빅오 표기법 연산 배열 연결 리스트 읽기(Read) O(1) O(N) 검색(Search) O(1) O(N) 삽입(Post) O(N) (끝에서 부터 O(1)) O(N) (Head 시작 O(1)) 삭제(Delete) O(N) (끝에서 부터 O(1)) O(N) (Head 시작 O(1)) 연결 리스트 사용 케이스 열차의 모습 상황: 기차에 좌석이 가득차 새로운 기차를 연결할려고 한다.과정1. 기차에 필요한 좌석이 몇석인지 확인한다.2. 기차를 얼마나 연결해야 하는지 확인한다.3. 기차에 뒤에 연결 고리를 만들어 앞 혹은 뒤에.. 2023. 12. 11.
자료구조와 알고리즘 6장 단일 연결 리스트 (1) TIL 날짜 2023.12.08 Contents 의미 배열과 연결 리스트의 차이점 연결 리스트 메소드 활용방법 (1) 연결 리스트 의미: 하나의 개체를 이루는 노드가 연결되어 리스트를 이루는 구조 구조 데이터: 각 노드가 실제로 저장하는 데이터, 연결 리스트가 저장하는 정보나 값 포인터(링크): 다음 노드를 가리키는 포인터, 이 링크를 통해 순서대로 노드들이 연결되어 있다. 헤드(head): 맨 앞의 노드 테일(tail): 맨 마지막 노드 배열과 연결 리스트의 차이점 배열 메모리 할당 방식 연속된 메모리 공간에 데이터를 저장한다. 크기 조절 및 삽입/삭제 연산 크기가 고정되어 있어 삽입 및 삭제 연산이 어렵고 비용이 높을 수 있다 접근 속도 인덱스를 통한 빠른 임의 접근이 가능하며 특정 요소에 대한 접근.. 2023. 12. 8.
자료구조와 알고리즘 5장 정렬 알고리즘(2) TIL 날짜 2023.12.06 Contents 병합 정렬 퀵 정렬 기수 정렬 정렬 알고리즘의 빅오 표기법 병합 정렬 의미: 분할 정복 알고리즘의 하나이다. 과정 장점 안정적인 정렬 방법 (상대적인 순서 변경X) 입력 데이터가 무엇이든 시간 동일 레코드를 연결 리스트(Linked List)로 구성하면, 데이터의 이동이 작아진다. 소규모의 데이터를 정렬할때 효율적 단점 배열로 구성되어 있을 경우 임시 배열 필요로 추가적인 메모리 필요하다. 대규모의 데이터를 정렬할때는 시간 낭비 발생 함수 function mergeSort(arr){ if(arr.length 2023. 12. 6.