선택 정렬은
배열이
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
>변화 하는 모습
'알고리즘' 카테고리의 다른 글
C++ 소인수 분해 (0) | 2018.12.27 |
---|---|
C++ 약수,소수 (0) | 2018.12.27 |
C++ 재귀 (0) | 2018.12.24 |
C++ 뒤집기 ( 2차 배열 함수 파라미터 ) (0) | 2018.12.24 |
C++ 카드게임 (0) | 2018.12.20 |
댓글