반응형
※테스트 환경은 Dev C++에서 하였고 첨부파일도 Dev C++에서 만든 소스파일입니다.
Selection_Sort.cpp
0.00MB
(소스 코드 테마 적용을 보려면 크롬말고 익스플로어로 열면 잘 적용됩니다.)
selectionsort(선택정렬)은 전체 데이터 중 가장 작은 수를 선택하여 앞쪽으로 배치하여 정렬하는 방법이다.
따라서 가장 작은 수부터 정렬된다.
//선택정렬, 가장 작은 수를 찾아 제일 앞쪽으로 배치 //평균 시간 복잡도는 O(n2) #include main(){ int a[] = {20, 40, 30, 50, 10}; int temp; for(int i = 0; i < 5; i++){ printf("%d ", a[i]); } for(int i = 0; i < 5; i++){ //min에 가장 작은 값이 들어가고 비교하기 위해 임의의 큰 수 대입, 나는 9999 //회전마다 min값과 index가 초기화 되어야 하기 때문에 for문 안에 배치한다. int min = 9999; int index; for(int j = i; j < 5; j++){ //가장 작은 값을 찾아서 min에 대입 if(min > a[j]){ min = a[j]; //가장 작은 값을 가지고 있는 index를 찾아서 대입 index = j; } //값 스왑 temp = a[i]; a[i] = a[index]; a[index] = temp; } } printf("\n"); for(int i = 0; i < 5; i++){ printf("%d ", a[i]); } return 0; }
반응형
'개인공부 > Algorithm(C, C++)' 카테고리의 다른 글
Programmers 체육복문제 (Greedy) (0) | 2020.09.24 |
---|---|
[C, C++] 한 줄 입력받기, 원하는 자릿수만큼 입력받기 (0) | 2020.02.18 |
QuickSort(퀵정렬), C, C++ (0) | 2020.01.14 |
MergeSort(합병정렬), C, C++ (0) | 2020.01.14 |
BubbleSort(버블정렬), C, C++ (0) | 2020.01.13 |