[java] 자바를 활용한 정렬 알고리즘

정렬 알고리즘은 데이터를 특정한 기준에 따라 순서대로 나열하는 알고리즘입니다. 자바에서는 다양한 정렬 알고리즘을 활용하여 데이터를 정렬할 수 있습니다. 이번 포스트에서는 자바를 사용하여 대표적인 정렬 알고리즘 몇 가지를 살펴보겠습니다.

목차

  1. 버블 정렬
  2. 선택 정렬
  3. 삽입 정렬

버블 정렬

버블 정렬은 인접한 두 원소의 크기를 비교하여 필요에 따라 서로 위치를 변경해가며 정렬하는 방식입니다. 아래는 버블 정렬을 사용한 자바 코드의 예시입니다.

public class BubbleSort {
    public static void bubbleSort(int[] arr) {
        int n = arr.length;
        for (int i = 0; i < n-1; i++) {
            for (int j = 0; j < n-i-1; j++) {
                if (arr[j] > arr[j+1]) {
                    // swap arr[j+1] and arr[j]
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }
}

선택 정렬

선택 정렬은 주어진 데이터 중 가장 작은 데이터를 선택하여 맨 앞의 데이터부터 차례대로 위치를 교환하는 정렬 방법입니다. 아래는 선택 정렬을 사용한 자바 코드의 예시입니다.

public class SelectionSort {
    public static void selectionSort(int[] arr) {
        int n = arr.length;
        for (int i = 0; i < n-1; i++) {
            int minIndex = i;
            for (int j = i+1; j < n; j++) {
                if (arr[j] < arr[minIndex]) {
                    minIndex = j;
                }
            }
            // swap arr[i] and arr[minIndex]
            int temp = arr[minIndex];
            arr[minIndex] = arr[i];
            arr[i] = temp;
        }
    }
}

삽입 정렬

삽입 정렬은 이미 정렬된 부분과 비교하여 자신의 위치를 찾아 삽입하는 방식으로 동작하는 정렬 알고리즘입니다. 아래는 삽입 정렬을 사용한 자바 코드의 예시입니다.

public class InsertionSort {
    public static void insertionSort(int[] arr) {
        int n = arr.length;
        for (int i = 1; i < n; i++) {
            int current = arr[i];
            int j = i - 1;
            while (j >= 0 && arr[j] > current) {
                arr[j+1] = arr[j];
                j--;
            }
            arr[j+1] = current;
        }
    }
}

위 예시 코드에서는 3가지의 간단한 정렬 알고리즘에 대한 자바 코드를 제공하였습니다. 개발자는 이러한 코드를 활용하여 프로젝트에 적합한 정렬 알고리즘을 선택하여 활용할 수 있습니다.

이외에도 자바에서는 다양한 정렬 알고리즘을 활용할 수 있으며, 프로젝트의 요구사항에 맞게 적절한 알고리즘을 선택하여 사용할 수 있습니다.

참고 자료