n개 수 집합에서 i번째로 작은 원소 찾기 (i = 0 이면 최솟값, i=n-1 이면 최댓값)
n이 홀수일 때, i = (n-1)/2 중앙값, 짝수일 때 i=$\frac{2}{n}-1$, $\frac{2}{n}$ 이면 중앙값
이번 챕터에서는 i=$\frac{2}{n}-1$ 을 중앙값으로 한다. $\therefore median_i = \lfloor \frac{n-1}{2} \rfloor$
최댓값과 최솟값 구하기

#include <iostream>
using namespace std;
int minimum(int* A, int n){
	int min = A[0];
	for(int i = 1; i<n; i++){
		if(min>A[i]){
			min = A[i];
		}
	}
	return min;
}
int main() {
  int A[10] = {9,8,7,5,3,6,4,2,0,1};
  int size = sizeof(A)/sizeof(A[0]);
  int min = minimum(A, size);
  cout<<min;
}

#include <iostream>
#include <vector>
using namespace std;
typedef struct Point{
	int min_v;
	int max_v;
}Point;
Point min_max(int* A, int n){
	int max = -987654321;
	int min = 987654321;
	int i = 0;
	while(i+2 <= n){
		if(A[i]<A[i+1]){
			if(A[i]<min) min = A[i];
			if(A[i+1]>max) max = A[i+1];
		}
		else{
			if(A[i+1]<min) min = A[i+1];
			if(A[i]>max) max = A[i];
		}
		i = i+2;
	}
	if(n%2 == 1){
		if(A[n-1] < min) min = A[n-1];
		if(A[n-1]> max) max = A[n-1];
	}
	return {min, max}; 
}
int main() {
  int A[10] = {9,8,7,5,3,6,4,2,0,1};
  int size = sizeof(A)/sizeof(A[0]);
  Point result = min_max(A, size);
  cout<<result.min_v<<" "<<result.max_v;
}
