목록Programming/Data Structure (13)
MyCloud
공간복잡도 (Space Complexity) 효율적인 알고리즘을 판단하는 기준에는 공간복잡도와 시간 복잡도가 있습니다.공간복잡도는 메모리를 얼마나 사용하는지에 관한 복잡도(RAM 사용량)입니다.하지만 최근 대용량 컴퓨터가 많아짐에 따라 중요성이 많이 떨어졌습니다. 시간복잡도 (Time Complexity) 시간복잡도는 시간이 얼마나 걸리느냐에 관한 복잡도(CPU 사용량)입니다.시간복잡도는 명령어들이 몇번이나 실행됬는지, 실행시간을 곱한 합계로 구할 수 있습니다.최상의 경우, 최악의 경우, 평균 시간에 따라 3가지 경우로 표기되며,표기법으로 빅오 표기법(최악의 경우), 오메가 표기법(최상의 경우), 세타 표기법(평균의 경우)이 존재합니다. 빅오 표기법은 최악의 경우(Worst Case)를 나타내는 표기법으..
선형 자료구조 (Linear) 선형 자료구조란 하나의 자료 뒤에 하나의 자료가 존재하는 것입니다. 배열과 리스트가 대표적이고 더 나아가서 스택, 큐도 이에 해당합니다. 비선형 자료구조 (NonLinear) 비선형 자료구조란 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 것입니다. 트리와 그래프가 대표적이며 계층적 구조를 나타내기에 적절합니다.
자료구조와 알고리즘 대부분의 프로그램은 다양하고 많은 양의 자료(Data)를 처리합니다. 이러한 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법을 자료구조라고 합니다! 또한 자료를 이용하여 주어진 문제를 처리하는 절차를 알고리즘이라고 합니다. 따라서 일반적인 프로그램은 자료구조와 알고리즘으로 구성되어 있습니다. 흔히쓰는 지도어플을 예로 들어보면 위도와 경도(자료)를 저장하고 최단거리 알고리즘을 사용한 어플리케이션입니다. 자료구조를 왜 배워야 할까? 자료구조에는 여러 종류가 잇고 각각의 자료구조는 각자의 연산, 목적이 있습니다. 따라서 다양한 프로그램을 설계할 때, 어떤 자료구조를 선택할지가 우선입니다. 선택되는 자료구조에 따라 프로그램의 성능이 달라지기 때문에 중요한 것이죠. 또한 잘 선택한 ..