ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [알고리즘] 선택정렬(Select sort)
    프로그래밍/알고리즘 2019. 3. 26. 20:46

    알고리즘

     

    선택정렬(Selection sort)

     

     

     

     

    간단 요약

     

    가정) Array[5]= { 15 ,11 ,1 ,3 ,8 } 을 오름차순으로 정렬한다.

     

    1.  0번 부터 4번 데이터 중 최솟값을 찾아 0번 데이터와 스왑한다.

     

    2.  1번 부터 4번 데이터 중 최솟값을 1번 데이터와 스왑한다.

     

    3.  n번 반복

     

    상세 설명

     

    가정) Array[5]= { 15 ,11 ,1 ,3 ,8 } 을 오름차순으로 정렬한다.

     

     

     

     

     가장 먼저 전체 인덱스 중 최솟값을 찾는다.

     

     

     

     

    최솟값 1을 첫번째 인덱스와 스왑한다.

     

     

     

     

     

    그 다음 두번째에서 네번째 데이터 중 최솟값을 찾는다.

    최솟값 3을 두번째 데이터 와 스왑한다.

    여기까지 하면 두번째 데이터 까지 오름차순 정렬이 완성된다.

     

     

     

     

     

    이렇게 n번 반복하면 오름차순 정렬이 완성된다 

     

     

    시간복잡도

     

     

     

    코드

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #include <iostream>
    #define number 5
     
    using namespace std;
     
    void Selectsort(int * arr)
    {
        for (int i = 0; i < number-1; i++) { //인덱스가 5까지라면 4까지만 가도록 설정
            int min= i;
            for (int j = i + 1; j < number; j++) { 
                if (arr[j] < arr[min]){//j의 인덱스가 최솟값보다 작다면 min=j
                    min = j;
                }
            }
            int temp = arr[min]; //min값을 가장 왼쪽으로 보낸다
            arr[min] = arr[i];
            arr[i] = temp;
        }
    }
     
     
    int main(void)
    {
        int arr[5= { 1511138 };
        int i;
     
        for (i = 0; i < 5; i++) {
     
            cout << arr[i] << " ";
        }
        cout << "\n\n";
        Selectsort(arr);
        for (i = 0; i < 5; i++) {
            cout << arr[i] << " ";
        }
     
        return 0;
     
    }
     
    cs

     

     출처 : https://gmlwjd9405.github.io/2018/05/06/algorithm-selection-sort.html

     출처 : https://terms.naver.com/entry.nhn?docId=2270435&cid=51173&categoryId=51173

     

     

     

     

     

     

     

     


    댓글

Designed by Tistory.