🚑 최단 경로를 찾아서 다익스트라❓ >다익스트라(Dijkstra)알고리즘은 특정한 노드(출발점)에서 출발하여 다른 노드(도착 지점)로 가는 각각의 최단 경로를 구해주는 알고리즘이다. 특성 다익스트라 알고리즘은 그리디 알고리즘을 기반으로 한다. 음의 간선(비용이 0보다 작은 값을 가지는 간선)이 존재할 경우, 정상적인 작동 X 1차원 리스트에 출발 노드부터의 최소 거리를 계속해서 갱신 현재 처리하고 있는 노드를 기준으로 인접한 노드와의 거리 갱신 📒 원리/과정 원리 > 매번 가장 비용이 적은 노드를 선텍 현재 처리하고 있는 노드를 기준으로 연결된 노드중 간선 비용이 가장 적은 노드를 선택하기 때문에 그리디 알고리즘에 기반한 알고리즘이라고 할 수 있다. 과정 출발 노드를 설정한다. 최단 거리 테이블을 초기화 한다. 방문하지 않은 노드 중
🧷Linked list Linked list와 Array list > Array list는 모든 원소가 한 곳에 모여있다는 특징이 있다. 반면에 Linked list는 아래 그림처럼 원소(node, vertex)가 한 곳에 있지 않고 흩어져있다. 위 그림(출처 : 생활코딩)은 linked list의 데이터 구조를 표현해주는 그림이다. 한 회사에서 같이 일하는 사람이 건물 어떤 사무실이든 상관없이 들어가있는 모습을 통해 링크드 리스트를 쉽게 이해할 수 있을 것이다. 연결 > linked list는 array와 다르게 위치가 흩어져있기 때문에 "연결"되어있어야 한다. 용어 인데, 여기서 k는 데이터의 자릿수를 말한다. 즉, 데이터의 자릿수가 많지 않으면서 데이터 수는 많을 경우 기수정렬을 활용하는 것이 효과적이라고 할 수 있다. 기수정렬의 핵심 이론 기수정렬은 10개의 큐를 이용한다. 여기서 각 큐는 자릿수를 대표하는데, 각 자릿수가 0~9까지 10개이기 때문에 10개의 큐를 이용하는 것이다. 다음과 같은 데이터가 있다고 하자. [16 80 18 77 03 24 80 23] 일의 자릿수를 기준으로 데이터를 큐에 저장했을 때 다음과 같다. 802477 1의 자리를 기준으로 해당 데이터들은 정렬되어있는 것을 알 수 있다. 이제 일의 자릿수가 정렬된 데이터들을 가지고, 10의 자리를 기준으로 큐에 저장해보자.