#include <iostream>
#include <string>
#include <vector>
#include <cmath>
#include <queue>
#include <list>
#include <stack>
#include <algorithm>
#include <cassert>
using namespace std;
bool CheckeSorted(int arr[], int size)
{
if (arr[0] <= arr[1] && arr[1] <= arr[2])
return true;
else
return false;
}
void Sorted(int arr[], int* size)
{
if (!(arr[0] <= arr[1] && arr[1] <= arr[2]))
{
if (arr[0] > arr[1])
swap(arr[0], arr[1]);
if (arr[1] > arr[2])
swap(arr[1], arr[2]);
if (arr[0] > arr[1])
swap(arr[0], arr[1]);
}
}
void Print(int arr[], int size)
{
for (int i = 0; i < size; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
// 3개 정렬
{
//for (int k = 0; k < 3; k++)
//{
// for (int j = 0; j < 3; j++)
// {
// for (int i = 0; i < 3; i++)
// {
// int arr[3] = { i,j,k };
// int size = sizeof(arr) / sizeof(arr[0]);
// for (int e = 0; e < size; e++)
// {
// cout << arr[e] << " " << flush;
// }
// cout << " - > " << flush;
// // 정렬 함수 구현하기
// Sorted(arr, &size);
// for (int e = 0; e < size; e++)
// {
// cout << arr[e] << " " << flush;
// }
// cout << boolalpha;
// cout << CheckeSorted(arr, size);
// cout << endl;
// }
// }
//}
}
// 5개 라면
{
}
// 가장 작은 수 찾기
{
/*int arr[] = { 8,3,2,5,1,1,2,5,8,9 };
int size = sizeof(arr) / sizeof(arr[0]);
assert(size > 0);
int Min = 0, MinIndex = 0;
for (int i = 0; i < size; i++)
{
if (arr[i] < arr[MinIndex])
{
Min = arr[i];
MinIndex = i;
}
}
cout << Min << " " << MinIndex;*/
}
// Selection Sort
{
int arr[] = { 8, 3, 2, 5 };
int size = sizeof(arr) / sizeof(arr[0]);
int min_index;
for (int i = 0; i < size - 1; i++)
{
// 구현
min_index = i;
for (int j = i + 1; j < size; j++)
{
if (arr[j] < arr[min_index])
min_index = j;
Print(arr, size);
}
swap(arr[i], arr[min_index]);
cout << boolalpha;
cout << CheckeSorted(arr, size);
cout << endl;
}
Print(arr, size);
}
return 0;
}