알고리즘/it 취업을 위한 알고리즘 문제풀이
32. 선택정렬
고줭
2021. 5. 20. 16:34
문제
N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 선택정렬입니다.
입력설명
첫 번째 줄에 자연수 N(1<=N<=100)이 주어집니다. 두 번째 줄에 N개의 자연수가 공백을 사이에 두고 입력됩니다. 각 자연수는 정수형 범위 안에 있습니다.
출력설명
오름차순으로 정렬된 수열을 출력합니다.
입력예제
6
13 5 11 7 23 15
출력예제
5 7 11 13 15 23
#include <stdio.h>
using namespace std;
int main(){
freopen("input.txt", "rt", stdin);
int n, i, j, index, temp;
int number[101];
scanf("%d", &n);
for(i=0; i<n; i++){
scanf("%d", &number[i]);
}
for(i=0; i<n-1; i++){
index = i;
for(j=i+1; j<n; j++){
if(number[j] < number[index]){
index = j;
}
temp = number[i];
number[i] = number[index];
number[index] = temp;
}
}
for(i=0; i<n; i++){
printf("%d ", number[i]);
}
return 0;
}
정렬은 검색만해도 많이 나옵니다. 선택정렬같은경우는 이중for문을 돌면서 하나하나 값을 확인하기 때문에 시간복잡도는 n^2이 나옵니다.