[java] 자바로 알고리즘 구현하는 방법
자바는 다양한 알고리즘을 구현하기에 매우 효과적인 언어입니다. 여기에서는 자바를 사용하여 주요 알고리즘을 구현하는 방법에 대해 알아보겠습니다.
이진 탐색(Binary Search) 구현하기
public class BinarySearch {
public static int binarySearch(int[] arr, int target) {
int left = 0, right = arr.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
}
if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
}
퀵 정렬(Quick Sort) 구현하기
public class QuickSort {
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pivotIndex = partition(arr, low, high);
quickSort(arr, low, pivotIndex - 1);
quickSort(arr, pivotIndex + 1, high);
}
}
private static int partition(int[] arr, int low, int high) {
int pivot = arr[high];
int i = low - 1;
for (int j = low; j < high; j++) {
if (arr[j] < pivot) {
i++;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp = arr[i + 1];
arr[i + 1] = arr[high];
arr[high] = temp;
return i + 1;
}
}
그래프 탐색(Graph Search) 구현하기
import java.util.LinkedList;
import java.util.Queue;
public class GraphSearch {
public static void bfs(int[][] graph, int start) {
boolean[] visited = new boolean[graph.length];
Queue<Integer> queue = new LinkedList<>();
queue.add(start);
visited[start] = true;
while (!queue.isEmpty()) {
int node = queue.poll();
System.out.print(node + " ");
for (int i = 0; i < graph.length; i++) {
if (graph[node][i] == 1 && !visited[i]) {
queue.add(i);
visited[i] = true;
}
}
}
}
}
이와 같이 자바를 사용하여 다양한 알고리즘을 구현할 수 있습니다. 알고리즘을 학습하고 응용하는 과정에서 자바의 강력한 기능을 활용하여 코드를 쉽게 작성할 수 있습니다.
더 많은 정보를 원하시면, GeeksforGeeks와 LeetCode에서 다양한 알고리즘 및 자료구조에 대해 찾아보시기 바랍니다.