알고리즘
C++ 선택 정렬
Chars4785
2018. 12. 27. 11:58
선택 정렬은
배열이
10 2 2 3 5 8
i
라고 가정하면
1. 10에서 8까지 모든 수를 비교한다.
2. 가장 작은 수와 10을 바꿔준다.
3. i 를 한칸 이동한다. 다시 1,2번 반복
2 10 2 3 5 8
i
2 2 10 3 5 8
i
#include <iostream>
#include <vector>
using namespace std;
int total[101][101];
int plane[100];
int main() {
int num;
cin>>num;
int array[num];
for(int i=0;i<num;i++)
cin >> array[i];
int temp;
for(int i=0;i<num;i++)
{
int inx = i;
for(int j=i;j<num;j++)
{
if(array[inx]>array[j])
inx=j;
}
temp= array[inx];
array[inx]=array[i];
array[i]=temp;
}
for(int i=0;i<num;i++){
cout<< array[i]<<" ";
}
return 0;
}
10
4 3 2 3 7 7 1 2 9 1
>입력한 값
1 3 2 3 7 7 4 2 9 1
1 1 2 3 7 7 4 2 9 3
1 1 2 3 7 7 4 2 9 3
1 1 2 2 7 7 4 3 9 3
1 1 2 2 3 7 4 7 9 3
1 1 2 2 3 3 4 7 9 7
1 1 2 2 3 3 4 7 9 7
1 1 2 2 3 3 4 7 9 7
1 1 2 2 3 3 4 7 7 9
1 1 2 2 3 3 4 7 7 9
>변화 하는 모습