top of page

소스 코드 제출

공개·회원 71명

20250504

/*

#include <stdio.h>

int d[100000]={};

int bs(int s,int e,int k)

{

int mid=(s+e)/2;

//printf("%d %d %d\n",s,mid,e);

if(s>=e)

{

return mid+1;

}

if(k<=d[mid])

{

return bs(s,mid,k);

}

else

{

return bs(mid+1,e,k);

}

}

int main()

{

int n,k,i;

scanf("%d %d",&n,&k);

for(i=0;i<n;i++)

{

scanf("%d",&d[i]);

}

if(k>d[n-1])

printf("%d",n+1);

else

printf("%d",bs(0,n-1,k));

return 0;

}


*/

/**

*quick sort 퀵 정렬

버블, 선택, 삽입 -> easy but slow

퀵, 병합, 기수 -> hard but fast

*/

/*

void qs(int s, int e)

{

if (s>=e) //정렬할게 없다면

{

return ;

}

int p = s;

int left = s+1, right = e;


while(1)

{

while(a[left] < a[p])

{

left++;

}


while(a[right] > a[p])

{

right--;

}


if (left>right)

break;

// a[left] a[right] 교환


}

// a[right] a[p] 교환


qs(s,r-1);

qs(r+1,e);


}

*/


#include <stdio.h>

#include <stdlib.h> // q sort 내장 함수 존재


int a[100]={10,4,1,3,2,1,4,7};


int compare(int* pa, int* pb)

{

if(*pa < *pb ) // 교환 여부?

return 1;

else

return 0;

}


int main()

{

int n = 8;

//qsort(정렬할첫원소의주소, 정렬할 데이터의 개수, 정렬할 데이터의 단위, 정렬 기준 함수);

qsort(a,n,sizeof(int),compare);


for(int i=0;i<n;i++)

printf("%d ",a[i]);

}



/*


********포인터 문법 설명

#include <stdio.h>

int main()

{

int a = 10;

int* pa = &a;


printf("a : %d\n",a); //직접 접근

printf("&a :%d\n",&a);

printf("pa : %d\n",pa);

printf("*pa :%d\n",*pa); //간접 접근


}

*/

1452 : 데이터 정렬 (large) -> 퀵 정렬 라이브러리 사용해서 풀어보기

3004 : 데이터 재정렬 -> 정렬 + 탐색

버블+ 그냥 탐색 (시간 초과)

퀵 + 이진 탐색 (통과)

5회 조회
주소 : 경기도 용인시 광교중앙로 302 블루 스퀘어 602호
연락처 : 031) 216 - 1546 ,     031) 215 - 1546
사업자등록번호 : 465-92-00916
​학원 등록 제 4603호
bottom of page