Info-Tech

선택정렬 본문

알고리즘

선택정렬

개발 로그를 쌓고 싶은 블로거 2018. 11. 5. 00:31
선택정렬은 첫번째에 인덱스의 값을 선택후  내부 반복을 통해 ‘최소값’을 찾는다. 오른쪽으로 계속 이동하여 ‘최소값’일 경우 위치를 스왑한다.

[10 , 8 , 3 , 1, 5]가 있다고 가정한다.

최초로 10이 선택되어 진다.  [8,3,1,5] 에서는 최소값이 1이다.
즉 선택된 ’10’은 8부터 시작해 최소값 인 ‘1’과 자리를 바꾸게 된다.
1회전 결과 -> [1,8,3,10,5]

두번째는 8이 선택되어 진다.
[3,10,5] 에서 최솟값은 ‘3’이다. 8과 3이 자리를 바꾸게 된다.
2회전 결과 -> [1,3,8,10,5]

3번째는 다시 8이 선택되어 진다.
[10,5] 에서 최솟값은 ‘5’이다. 8과 5가 자리를 바꾸게 된다.
3회전 결과 -> [1,3,5,10,8]

4번째는 10이 선택되어 진다.
8과 자리를 바꾸게 된다.
4회전 결과 -> [1,3,5,8,10]


for(int i=0; i<n-1; i++) {
    
    int min = i;
    for(int k=i+1; k<n; k++) {

        //최소값을 찾아주는 과정
        if(list[k] < list[min]) {
                min = k;
            }
    } 
    
    int temp = list[i];
    list[i] = list[min];
    list[min] = temp;


'알고리즘' 카테고리의 다른 글

삽입정렬  (0) 2018.11.05
플로이드 와샬  (0) 2018.10.25
그리디 알고리즘  (0) 2018.10.25
이진탐색  (0) 2018.10.24
유니온 파인드  (0) 2018.10.24
Comments