[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;
                }
            }
        }
    }
}

이와 같이 자바를 사용하여 다양한 알고리즘을 구현할 수 있습니다. 알고리즘을 학습하고 응용하는 과정에서 자바의 강력한 기능을 활용하여 코드를 쉽게 작성할 수 있습니다.

더 많은 정보를 원하시면, GeeksforGeeksLeetCode에서 다양한 알고리즘 및 자료구조에 대해 찾아보시기 바랍니다.