1. 알고리즘 정렬 기본

정렬 알고리즘은 주어진 데이터를 일정한 순서로 정렬하는 알고리즘입니다. 정렬은 데이터를 구조화하고 탐색이나 다른 연산을 수행하기 쉽게 만들어주는 중요한 작업입니다. 여기서는 몇 가지 기본적인 정렬 알고리즘과 예시를 소개하겠습니다.

1. 선택 정렬(Selection Sort)

선택 정렬은 주어진 리스트에서 가장 작은 값을 찾아 맨 앞으로 이동시키는 과정을 반복하여 정렬을 수행하는 알고리즘입니다.

public 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;
            }
        }
        int temp = arr[minIndex];
        arr[minIndex] = arr[i];
        arr[i] = temp;
    }
}

2. 버블 정렬(Bubble Sort)

버블 정렬은 인접한 두 원소를 비교하여 순서에 맞지 않는 경우 서로 교환하는 과정을 반복하여 정렬을 수행하는 알고리즘입니다.

public 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]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}

3. 삽입 정렬(Insertion Sort)

삽입 정렬은 배열을 정렬된 부분과 정렬되지 않은 부분으로 나누고, 정렬되지 않은 부분의 원소를 정렬된 부분에 삽입하는 과정을 반복하여 정렬을 수행하는 알고리즘입니다.

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

Last updated