본문 바로가기
728x90

🗂️CS & Other20

[자료구조] 자료구조에 대하여 💡 자료구조란 무엇인가? (Data Structure) 프로그램에서 사용할 많은 데이터를 메모리 상에서 관리하는 여러 구현 방법들 효율적인 자료구조가 성능 좋은 알고리즘의 기반이 됨 자료의 효율적인 관리는 프로그램의 수행 속도와 밀접한 관련이 있음 여러 자료 구조 중에서 구현하려는 프로그램에 맞는 최적의 자료구조를 활용해야 하므로 자료구조에 대한 이해가 중요함 💡 자료구조에는 어떤 것들이 있나? 선형 자료구조 (Linear) 배열 (Array) : 정해진 크기의 메모리를 먼저 할당 받아 사용하고, 자료의 물리적 위치와 논리적 위치가 같음 연결 리스트 (LinkedList) : 자료가 추가될 때마다 메모리를 할당 받고, 자료는 링크로 연결됨. 자료의 물리적 위치와 논리적 위치가 다를 수 있음. 스택 (St.. 2023. 8. 28.
[TimeComplexity] 시간 복잡도 💡 알고리즘에 대한 해답을 찾는 것도 중요하지만 시간복잡도를 고려하여 효율적인 코드를 짜는 것도 중요하다. ‘입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼마만큼 걸리는가?’라는 말이다. 효율적인 알고리즘을 구현한다는 것은 바꾸어 말해 입력값이 커짐에 따라 증가하는 시간의 비율을 최소화한 알고리즘을 구성해야 한다. ❗️Big-O 표기법 Big-O(빅-오) ⇒ 상한 점근 [최악] Big-Ω(빅-오메가) ⇒ 하한 점근 [최선] Big-θ(빅-세타) ⇒ 그 둘의 평균 [중간] Big-O(빅-오) 표기법은 최악의 경우를 고려하므로, 프로그램이 실행되는 과정에서 소요되는 최악의 시간까지 고려할 수 있기 때문에 가장 자주 사용된다. 👉 Big-O 표기법의 종류 O(1) - 일정한 복잡도 O(l.. 2023. 8. 28.
728x90