알고리즘

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 


>변화 하는 모습