/*
//내림차순 선택정렬
#include <stdio.h>
int main()
{
int i, j, temp = 0, n, max = 0;
int arr[1001] = {};
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
scanf("%d", &arr[i]);
}
for (i = 1; i < n; i++)
{
max = i; // max : 가장 큰 값의 위치
for (j = i + 1; j <= n; j++)
{
if (arr[j] > arr[max])
{
max=j;
}
}
temp = arr[i];
arr[i] = arr[max];
arr[max] = temp;
}
for (i = 1; i <= n; i++)
{
printf("%d\n", arr[i]);
}
}
#include <stdio.h>
int a[10001];
int n, i, j, temp, min;
int main()
{
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i = 1; i < n; i++)
{
min = i;
for (j = i + 1; j <= n; j++)
{
if (a[j] < a[min])
{
min = j;
}
}
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
for (i = 1; i <= n; i++)
printf("%d\n", a[i]);
return 0;
}
버블, 선택, 삽입 (정렬이 어느정도 되어있는 데이터들을 정렬할때 다른 정렬보다 빠름.)
#include <stdio.h>
int a[10001];
int n, i, j, temp, key;
int main()
{
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i = 2; i <= n; i++)
{
key = a[i];
for (j=i-1 ; j>=1&&key<a[j] ; j--)
{
a[j + 1] = a[j];
}
a[j + 1] = key;
}
for (i = 1; i <= n; i++)
printf("%d\n", a[i]);
return 0;
}
#include<stdio.h>
//이분 탐색 이진 탐색 binary search
int a[500]={};
// a[s] ~ a[e] 에서 k의 위치를 리턴, (만약 없다면 -1리턴)
int bs(int s, int e, int k) {
int mid = (s+e)/2;
if(s>e) return -1;
if(a[mid]==k) return mid;
else if( a[mid]>k) bs(s,mid-1,k);
else if(a[mid]<k) bs(mid+1,e,k);
}
int main(){
int n,k;
scanf("%d %d",&n,&k);
for (i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
printf("%d",bs(1,n,k));
}
*/
#include<stdio.h>
int a[1000001]={};
int bs(int s,int e,int k)
{
int mid = (s+e)/2;
if (s > e)
{
return -1;
}
if (a[mid] == k)
{
return mid;
}
else if (a[mid] > k)
{
bs(s,mid-1,k);
}
else if (a[mid] < k)
{
bs(s,mid+1,k)
}
}
int main()
{
int i,n,m;
scanf("%d",&n);
for (i=1;i<=n;i++)
{
scanf("%d",&b[i]);
}
for (i=1;i<=m;i++)
{
scanf("%d",&k);
printf("%d",bs(1,n,k));
}
}
top of page

실제 작동 상태를 확인하려면 라이브 사이트로 이동하세요.
20221026
20221026
댓글 0개
좋아요
댓글(0)
더 이상 게시물에 대한 댓글 기능이 지원되지 않습니다. 자세한 사항은 사이트 소유자에게 문의하세요.
bottom of page


