티스토리 뷰

자바

자바 선택정렬

ITGenerations 2019. 11. 9. 00:22

참고 링크

 

 

 

 

 

선택정렬

 

총 비교횟수

n(n-1)/2

 

최상 평균 최악
O(n^2) O(n^2) O(n^2)

 

/*
선택정렬

선택정렬이란 네개의 수가 정렬되지 않은채로 있다면,
첫째, 첫번째값과나머지값 중 제일 작은 수와 자리를 바꾼다.
둘째, 두번재값과 나머지값중 제일 작은 수와 자리를 바꾼다.
셋째, 세번째값과 나머지값중 제일 작은 수와 자리를 바꾼다.
정렬 끝
 */
package algorithm;

public class SelectionSort {
    public static void main(String[] args){
        int[] e = {95, 75, 85, 100, 50};
        int i, j ,a;
        int tmp; //교환 임시변수
//교환법 : 선택정렬(오름차순)
        i = 0;
        System.out.println("시작값");
        for(a = 0; a<5 ; a++) {
            System.out.print(" " + e[a]);
        }
        System.out.println();
        System.out.println("정렬 시작");

        do {
            j = i+1; //시작값 i+1;
            do {
                if(e[i] > e[j]) {
                    tmp = e[i];
                    e[i] = e[j];
                    e[j] = tmp;
                }
                j++;
            }while(j<5); //내부반복(변화) : 각 단계에서의 비교횟수.
            i++;
            for(a = 0; a<5 ; a++) {
                System.out.print(" " + e[a]);
            }
            System.out.println();
        }while(i<4);    //외부반복 고정 : 총 단계(회전)수
        for(a = 0; a<5 ; a++) {
            System.out.print(" " + e[a]);
        }
        System.out.println();// 줄변경(다음 줄로 커서 이동)
        System.out.println("정렬끝");
    }
}


선택정렬

선택정렬이란 네개의 수가 정렬되지 않은채로 있다면,
첫째, 첫번째값과나머지값 중 제일 작은 수와 자리를 바꾼다.
둘째, 두번재값과 나머지값중 제일 작은 수와 자리를 바꾼다.
셋째, 세번째값과 나머지값중 제일 작은 수와 자리를 바꾼다.
정렬 끝

 

 

|출력

시작값
 95 75 85 100 50
정렬 시작
 50 95 85 100 75   //   95와 50이 바뀜
 50 75 95 100 85   //   95와 75가 바뀜
 50 75 85 100 95   //   95와 85가 바뀜
 50 75 85 95 100   //   95와 100이 바뀜
 50 75 85 95 100
정렬끝

 

 

선택정렬 장점

- 자료 이동횟수가 정해져있다.

 

선택정렬 단점

- 안정성을 만족하지 않는다.

- 값이 같은 경우 위치 변경될 수 있다. 

 

 

'자바' 카테고리의 다른 글

[이클립스에러]Problems During Content Assist  (0) 2020.01.10
자바 삽입정렬  (0) 2019.11.09
자바 버블정렬  (0) 2019.11.09
자바 간단 계산기  (0) 2019.11.08
변수  (0) 2019.10.19