2024/09/19 2

[ComputerScience] 알고리즘의 시간복잡도와 탐색, 정렬 (Binary Search, 깊이우선탐색, 넓이우선탐색, Selection Sort, QuickSort, Merge Sort)

이 게시글은서울대학교 데이터사이언스대학원조요한 교수님의데이터사이언스 응용을 위한 컴퓨팅 강의를학습을 위해 재구성하였습니다.Time Complexity 알고리즘의 성능을 측정할 때는 흔히time complexity(시간 복잡도)와 space complexity(공간 복잡도)로측정을 많이 한다 이 중에서 이번에 알아볼 것은 시간복잡도보통 흔히 우리들이 아는 알고리즘의 성능을 평가할 때 자주 사용된다 단순하게 어떤 알고리즘의 시간 복잡도를 측정하려면어떤 방법이 있을까? 첫 번째는 실제로 알고리즘을 돌려서시작 시점과 종료된 시점의 시각을 구해그 차이를 구하는 방법이다 이러한 방법의 차이는 real-world performance를 측정할 수 있다즉, 실제로 알고리즘이 사용될 때 어느정도의 시간이 걸리는지를측정할..

[ComputerScience] 자료구조 Tree와 Graph (Rooted Binary Tree, Binary Search Tree, Graph)

이 게시글은서울대학교 데이터사이언스대학원조요한 교수님의데이터사이언스 응용을 위한 컴퓨팅 강의를학습을 위해 재구성하였습니다.Tree란? 자료구조 중에서 Tree(트리)라는 친구가 있다단순하게 말하면 트리는 서로 연결되어있는노드들의 집합인데노드와 노드 사이에는 반드시 한 개의 길만 존재해야한다 따라서 위 그림에서 Tree로 분류할 수 있는 것은1번, 3번, 4번이라고 할 수 있다 이런 형태의 자료구조를 트리라고 부른 이유는자료구조의 형태가 나무를 거꾸로 한 형태를 닮았기 때문인데가장 출발점이 되는 노드를 root(뿌리)로 부르고길을 통해 퍼져나가는 노드들의 모양이 leaf(잎)의형태를 닮았기 때문이다  Rooted Binary Tree Rooted Binary Tree는Binary라는 뜻에서 유추할 수 있듯..