N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요.
정렬하는 방법은 선택정렬입니다.
첫 번째 줄에 자연수 N(1<=N<=100)이 주어집니다.
두 번째 줄에 N개의 자연수가 공백을 사이에 두고 입력됩니다. 각 자연수는 정수형 범위 안에 있습니다.
오름차순으로 정렬된 수열을 출력합니다.
내 풀이
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n;
vector<int> v;
cin >> n;
for (int i = 0; i < n; i++)
{
int x;
cin >> x;
v.push_back(x);
}
sort(v.begin(), v.end());
for (int i = 0; i < v.size(); i++)
{
cout << v[i] << " ";
}
}
선택정렬 코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int a[100], n,tmp,idx;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
for (int i = 0; i < n; i++)
{
idx = i;
for (int j = i + 1; j < n; j++)
{
if (a[j] < a[idx]) idx = j;
}
tmp = a[i];
a[i] = a[idx];
a[idx] = tmp;
}
for (int i = 0; i < n; i++)
{
cout << a[i]<<" ";
}
}