$i^{th}$ order Statistics

Untitled

#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;
}

최댓값 최솟값을 동시에 구하기

Untitled

#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;
}

두 번째로 작은 값 찾기

Untitled