C# 자료구조, 알고리즘, 길찾기/개론

*자료 구조 알고리즘을 공부하기에 앞서 알아야 할 것은 책으로 외우는 것은 전혀 쓸모가 없다는 것이다.애초에 실행활에 도움을 주기 위해 발전한 영역이기 때문에 실제 어떻게 활용할 것인지 고민하면서 공부해야 학습하기 용이하다.선형 구조 (Linear Structure) 선형 구조는 데이터 요소들이 일렬로 연결된 구조이다. 각 요소는 전후의 요소와 직접적으로 연결되어 있으며, 이런 연결은 순차적으로 이루어진다. 대표적인 선형 구조에는 다음과 같은 것들이 있다.배열(Array): 고정된 크기의 연속된 메모리 블록으로 이루어진 데이터 구조이다. 각 요소는 인덱스를 통해 접근할 수 있다.연결 리스트(Linked List): 각 요소가 다음 요소에 대한 포인터를 가지고 있는 구조이다. 단일 연결 리스트, 이중 연결..
인터페이스란? 인터페이스는 클래스와 유사한 문법을 지닌(하지만 근본적으로는 다른), "상이한 시스템간의 계약 정보를 표현한 구조체" 로 정의할 수 있다. 추상 멤버로만 구성된 Abstract Base Class와 개념적으로 유사하며, 어떤 클래스가 인터페이스를 가지는 경우 해당 인터페이스의 모든 멤버에 대한 구현을 제공해야 한다. 한 클래스는 여러 개의 인터페이스를 가질 수 있다. 쉽게 풀어서 비유하면 인터페이스는 계약서, 또는 설계도로 생각하면 된다. 인터페이스 문법 1. 정의 인터페이스는 구현 없이 메서드 선언만 포함되어 있다. class 키워드 대신 interface 키워드를 사용한다. I로 시작하도록 네이밍 해야 한다. 클래스와 다르게 인터페이스는 정의가 없고 선언만 있다. (Only declar..
빠른 알고리즘은 느린 알고리즘보다 우수하다! 하지만... 빠름과 느림의 종류는 굉장히 다양하다. 알고리즘의 스피드를 어떻게 전문으로, CS적으로 표현하면 좋을까? 두 가지 알고리즘을 비교하는 방법? A가 B보다 "조금", "많이" 빨라요 -> 애매모호함. 어떤 환경에서는 a가 빠르고, 어떤 환경에서는 b가 빠르다면 애매하고 무의미해짐. 즉 시간으로 표현해서는 안됨. ex) 내 컴퓨터는 최신 컴퓨터라 너의 컴퓨터에서보다 알고리즘 실행이 빠르다. 입력이 적은 구간과 많은 구간 사이에서 성능 차이가 확연히 나는 경우도 있음 ex) 출퇴근 할 때 지하철이 빠른가 버스가 빠른가? 회사가 가까울 경우 버스가, 거리가 멀 수록 지하철이 좋은 선택이 되는 경우와도 같음. 두 가지 경우가 강점을 보이는 경우가 다른 상황..
HeadlessCreator
'C# 자료구조, 알고리즘, 길찾기/개론' 카테고리의 글 목록