728x90
728x90
CS/알고리즘2022. 12. 20. 22:53[알고리즘] 플로이드-워셜(Floyd-Warshall)

[  플로이드-워셜(Floyd-Warshall)  ]그래프에서 가능한 모든 노드 쌍에 대해 최단 거리를 구하는 알고리즘이다 다익스트라는 하나의 정점에서 다른 모든 정점까지의 최단 거리를 구하는 알고리즘(S.S.S.P - Single Source Shortest Path) 이었다면, 플로이드-워셜 알고리즘은 한 번 실행하여 모든 노드 간 최단 경로를 구할 수 있습니다.플로이드-워셜 알고리즘은 다익스트라 알고리즘과는 다르게 음의 간선도 사용할 수 있다.다익스트라(Dijkstra) 알고리즘다이나믹 프로그래밍을 활용한 대표적인 최단 경로 탐색 알고리즘이다특정한 하나의 정점에서 다른 모든 정점으로 가는 최단 경로를 알려준다음의 간선을 포함할 수 없지만 현실 세계에서는 음의 간선이 존재하지 않기 때문에 현실 세계에..

CS/알고리즘2022. 12. 20. 14:12알고리즘 - 탐욕법(Greedy Algorithm)

탐욕법(Greedy Algorithm)※ Greedy : 탐욕스러운, 욕심 많은...탐욕 알고리즘 : 선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법최적해를 구하는 데에 사용되는 근사적인 방법이다.여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달하지만 그것이 최적이라는 보장은 없다.탐욕 알고리즘을 적용할 수 있는 문제들은 지역적으로 최적이면서 전역적으로 최적인 문제들이다.     탐욕 알고리즘 문제를 해결하는 방법선택 절차(Selection Procedure) : 현재 상태에서의 최적의 해답을 선택한다.적절성 검사(Feasibility Check) : 선택된 값이 문제의 조건을 만족하는..

[알고리즘] 이진탐색(이분탐색) - Binary Search
CS/알고리즘2022. 12. 18. 12:27[알고리즘] 이진탐색(이분탐색) - Binary Search

Binary Search정렬된 데이터 집합을 이분화 하면서 탐색하는 방법정렬되어 있어야 한다  보통 세 개의 변수를 지정해 두고 (ex : left, mid, right)찾고자 하는 값, 즉 mid의 값이 찾아낸 값보다 크면 mid는 찾아낸 값보다 오른쪽에 위치하고 작다면 왼쪽에 위치한다public static int binarySearch(int arr[], int x) { int mid; int left = 0; int right = arr.length - 1; // 배열을 다 돌때까지 반복 while (left

728x90
728x90
image