본문 바로가기
728x90
반응형

자료구조13

배열(면접을 위한 CS 전공지식 노트) 배열 배열 배열(Array)은 컴퓨터 과학과 프로그래밍에서 중요한 자료구조 중 하나로, 여러 개의 요소를 하나의 변수에 저장할 수 있는 데이터 구조입니다. 배열은 데이터를 순서대로 저장하며, 각 요소는 고유한 인덱스를 가지고 있습니다. 이 인덱스를 사용하여 특정 위치에 있는 요소를 빠르게 찾을 수 있습니다. 배열의 특징 고정된 크기: 배열은 생성할 때 크기가 고정되며, 나중에 크기를 변경하기 어려운 점이 있습니다. 이것은 배열의 주요 단점 중 하나로, 크기가 동적으로 조절되는 자료구조인 리스트와 다릅니다. 인덱스: 배열 내의 각 요소는 0부터 시작하는 고유한 인덱스를 가집니다. 이 인덱스를 사용하여 요소를 읽거나 수정할 수 있습니다. 인덱스를 통해 특정 위치에 있는 요소를 상수 시간(시간 복잡도 O(1).. 2023. 10. 25.
연결 리스트(면접을 위한 CS 전공지식 노트) 연결 리스트 연결 리스트 연결 리스트(Linked List)는 컴퓨터 과학 및 프로그래밍에서 중요한 자료 구조 중 하나로, 데이터 요소의 선형 집합을 표현하는데 사용됩니다. 연결 리스트는 배열과는 다르게 데이터 요소가 메모리상에 연속적으로 저장되지 않고, 각 요소가 다음 요소를 가리키는 링크(혹은 포인터)를 사용하여 연결된 구조를 갖습니다. 이러한 링크로 인해 데이터 요소가 메모리상에서 어디에 저장되는지에 대한 유연성을 제공하며, 데이터 요소를 삽입, 삭제, 또는 재배열하기가 쉽습니다. 연결 리스트 구성 요소 및 특징 노드(Node): 연결 리스트의 각 요소를 나타내는 단위로 노드라고 불립니다. 각 노드는 데이터 요소와 다음 노드를 가리키는 포인터(링크)로 이루어져 있습니다. 헤드(Head): 연결 리스.. 2023. 10. 24.
공간 복잡도(면접을 위한 CS 전공지식 노트) 공간 복잡도 공간 복잡도 공간 복잡도(Space Complexity)는 어떤 알고리즘 또는 프로그램이 실행될 때 필요로 하는 메모리 공간의 양을 나타내는 메트릭입니다. 공간 복잡도는 주로 알고리즘이나 데이터 구조가 메모리를 어떻게 사용하는지를 분석하고 설명하는 데 사용됩니다. 공간 복잡도 목적 메모리 요구 사항 평가: 특정 알고리즘이나 데이터 구조가 얼마나 많은 메모리를 사용하는지 이해하는 데 도움이 됩니다. 이는 시스템 또는 장치의 물리적 메모리 또는 가상 메모리에 대한 요구 사항을 평가하는 데 중요합니다. 자원 관리: 프로그램이나 알고리즘이 사용 가능한 메모리를 효율적으로 활용하는지 확인하는 데 사용됩니다. 메모리 공간의 효율적인 사용은 시스템 성능을 향상시키고, 메모리 부족 문제를 방지하는 데 중요.. 2023. 10. 23.
시간 복잡도(면접을 위한 CS 전공지식 노트) 시간 복잡도 시간 복잡도 시간 복잡도는 알고리즘 또는 자료구조의 성능을 나타내는 메트릭으로, 입력 데이터 크기에 따른 알고리즘 실행 시간의 증가 추이를 설명합니다. 시간 복잡도는 주로 빅 오(O) 표기법을 사용하여 표현되며, 입력 크기 n에 대한 함수로 나타냅니다. 시간 복잡도 개념 최선, 평균, 최악의 경우 (Best Case, Average Case, Worst Case): 알고리즘의 시간 복잡도는 일반적으로 세 가지 경우로 나뉩니다. 최선의 경우 (Best Case): 주어진 입력에 대해 알고리즘이 가장 빨리 실행되는 경우의 시간 복잡도를 나타냅니다. 평균 경우 (Average Case): 입력 데이터의 모든 가능한 경우를 고려하여 평균적으로 알고리즘이 실행되는 경우의 시간 복잡도를 나타냅니다. 최.. 2023. 10. 22.
728x90
반응형