정렬(Sort)

최기수·2021년 7월 20일
0

Computer Science

목록 보기
3/5

선택 정렬(Selection Sort)

선택 정렬은 가장 작은 값을 선택하여 진행하는 방식이다.

  1. 정렬되지 않은 가장 작은 값을 선택한다.
  2. 맨 앞 정렬되지 않은 값과 위치를 바꾼다.
  3. 이를 반복 수행한다.

private void selectionSort(int[] list) {
    int indexMin = 0;
    int temp     = 0;
    
    for (int i = 0; i < list.length - 1; i++) {
        indexMin = i;
        
        for (int j = i + 1; j < list.length; j++) {
            if (list[j] < list[indexMin]) {
                indexMin = j;
            }
        }
        
        temp           = list[indexMin];
        list[indexMin] = list[i];
        list[i]        = temp;
    }
}

삽입 정렬(Insertion Sort)

삽입 정렬은 알맞은 위치에 삽입하여 진행하는 방식이다.

  1. 맨 앞 정렬되지 않은 값을 선택한다.
    (단, 가장 맨 앞에 있는 값은 이미 정렬된 값이다.)
  2. 정렬된 리스트들과 비교하여 알맞은 위치를 찾아 삽입한다.
  3. 이를 반복 수행한다.

private void insertionSort(int[] list) {
    int temp = 0;
    int aux  = 0;
    
    for (int index = 1; index < list.length; index++) {
        temp = list[index];
        aux  = index - 1;
        
        while ((aux >= 0) && (list[aux] > temp)) {
            list[aux + 1] = list[aux];
            aux--;
        }
        
        list[aux + 1] = temp;
    }
}

거품 정렬(Bubble Sort)

거품 정렬은 이웃한 것끼리 거품처럼 진행하는 방식이다.

private void bubbleSort(int[] list) {
    int temp = 0;
    
    for (int i = 0; i < list.length - 1; i++) {
        for (int j = 1; j < list.length - i; j++) {
            if (list[j] < list[j - 1]) {
                temp        = list[j - 1];
                list[j - 1] = list[j];
                list[j]     = temp;
            }
        }
    }
}

0개의 댓글