inblog logo
|
MiracleCoding
    JAVAIntelliJ

    [JAVA] (선택정렬 알고리즘) Selection Sort

    Dec 18, 2023
    [JAVA] (선택정렬 알고리즘) Selection Sort
    💡
    선택 정렬 (Selection Sort) 알고리즘 - 최솟값 혹은 최댓값을 찾아 첫 번째 위치에 놓고, 나머지 중 다시 값을 찾아 다음 위치로 정렬하는 알고리즘
     

    ex) 5, 8, 2, 4, 3를 정렬해보자

    1round.
    비교
    i = 0 (해당 위치 변경), p = i (교환 인덱스)
    5 ,8 (0 , 1)
    변화 X
    5, 2 (0 , 2)
    p = 2
    2 ,4 (2 , 3)
    변화 X
    2 ,3 (3, 4)
    변화 X
    if ( i ≠ p ) 2, 8, 5, 4, 3 (i, p 교환)
     
    2round.
    비교
    i = 1 (해당 위치 변경), p = i (교환 인덱스)
    8, 5 (1, 2)
    p = 2
    5, 4 (2, 3)
    p = 3
    4, 3 (3, 4)
    p = 4
    if ( i ≠ p ) 2, 3, 5, 4, 8
     
    3round.
    비교
    i = 2 (해당 위치 변경), p = i (교환 인덱스)
    5, 4 (2, 3)
    p = 3
    4, 8 (3, 4)
    p = 4
    if ( i ≠ p ) X
     
    4round.
    비교
    i = 3 (해당 위치 변경), p = i (교환 인덱스)
    5, 8 (3, 4)
    변화 X
    if ( i ≠ p ) 2, 3, 4, 5, 8
     
     
    public class SelectionSort { public static void main(String[] args) { int[] arr = { 5, 8, 2, 4, 3}; for (int rep = 0; rep < arr.length-1; rep++) { int min = rep; // rep번째 보다 rep+1이 크면 min은 rep + i번째 자리에 있다 for (int i = rep + 1; i < N; i++) { if (arr[min] > arr[i]) min = i; } // 최솟값 순으로 rep에 위치 if ((rep) != min) { int temp = arr[rep]; arr[rep] = arr[min]; arr[min] = temp; } } for (int i = 0; i < N; i++) System.out.println(arr[i]); } }
    notion image
     
    Share article

    MiracleCoding

    RSS·Powered by Inblog