2.1. 수 정렬하기 ¶
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
	int n, i, j, minj, temp;
	int *arr;
	
	scanf("%d", &n);
	arr = (int *)malloc(sizeof(int) * n);
	for(i=0; i<n; i++) scanf("%d", arr + i);
	for(i=0; i<n; i++) {
		minj = i;
		for(j=i+1; j<n; j++) {
			if(arr[j] < arr[minj]) {
				minj = j;
			}
		}
		temp = arr[minj];
		arr[minj] = arr[i];
		arr[i] = temp;
		printf("%d\n", arr[i]);
	}
	return 0;
}
2.2. 수 찾기 ¶
#include <stdio.h>
#include <stdlib.h>
// 오름차순 정렬
int compare (const void *first, const void *second)
{
    if (*(int*)first > *(int*)second)
        return 1;
    else if (*(int*)first < *(int*)second)
        return -1;
    else 
        return 0;
}
int main(int argc, char* argv[]) {
	int n1, n2, i;
	int *arr1, *arr2;
	int B_S(int *arr, int size, int solution);
	
	scanf("%d", &n1);
	arr1 = (int *)malloc(sizeof(int) * n1);
	for(i=0; i<n1; i++) scanf("%d", &arr1[i]);
	// 정렬
	qsort(arr1, n1, sizeof(int), compare);
	scanf("%d", &n2);
	arr2 = (int *)malloc(sizeof(int) * n2);
	for(i=0; i<n2; i++) scanf("%d", &arr2[i]);
	// 서치
	for(i=0; i<n2; i++) {
		printf("%d\n", B_S(arr1, n1, arr2[i]));
	}
	return 0;
}
// 바이너리 서치
int B_S(int *arr, int size, int solution) {
	int s=0, e=size-1;
	int m;
	while(s <= e) {
		m = (s+e)/2;
		if(arr[m] > solution) e = m - 1;
		else if(arr[m] < solution) s = m + 1;
		else return 1;
	}
	return 0;
}
3.1. 수 정렬하기 ¶
#include <stdio.h>
int main() {
	int N;
	int A[2000];
	scanf("%d", &N);
	for (int i = 0; i < N; i++) {
		scanf("%d", &A[i]);
	}
	for (int i = 0; i < N; i++) {
		for (int j = i; j < N; j++) {
			if (A[i] > A[j]) {
				int tmp = A[i];
				A[i] = A[j];
				A[j] = tmp;
			}
		}
	}
	for (int i = 0; i < N; i++) {
		printf("%d\n", A[i]);
	}
	return 0;
}
3.2. 수 찾기 ¶
#include <stdio.h>
#include <stdlib.h>
int A[100001];
int N;
int compare(void *first, void* second){
    if(*(int*)first> *(int*)second){
        return 1;
    }
    else if(*(int*)first<*(int*)second){
        return -1;
    }
    return 0;
}
int B_S(int s, int e, int search){
    int m = (s+e)/2;
    if(s>e) return 0;
    if(A[m]==search) return 1;
    else if(A[m]>search) return B_S(s,m-1,search);
    else return B_S(m+1, e, search);
}
int main() {
    int i, j, min_idx, tmp, T, search;
    scanf("%d", &N);
    for(i=0;i<N;i++) {
        scanf("%d",&A[i]);
    }
    qsort(A, N, sizeof(int), compare);
    scanf("%d", &T);
    for(i=0;i<T;i++){
        scanf("%d", &search);
        printf("%d\n", B_S(0, N-1, search));
    }
    return 0;
}













