다른 문제는 다 알고 있어서 풀었는데 이 문제만 모르겟어요 ㅠㅠ 어떻게 코딩을 해야하는지도 모르겟고,., 문제는 아래에 있어요 이진 탐색 알고리즘을 이용하여 조건 3의 key 값을 탐색하는 과정을 서술하라. 조건1: 이진 탐색 알고리즘은 함수 이진탐색(비순환 함수)을 사용
조건 2 : int x[10]={13,18,20,22,27,29,30,34,38,41}
조건 3 : key = 34
line by line으로 동작들을 구현하면 쉽게 만들수있어요. 우선 이진탐색의 동작과정을 아셔야할거같아요.. 이진탐색은 오름차순으로 정렬된 배열인것이 전제조건이구요 배열의 중간을 시작위치로잡고 찾으려는값이 현재위치의 값보다 크냐? 크면 오른쪽에서탐색 작으면 왼쪽에서 탐색하는거에요. Binary_search(int key) 이런식으로 함수를만들어서 input으로 받은 key값을 탐색시키는건데 자세한구현은 구글링으로..
#include <stdio.h> #include <stddef.h> #include <stdlib.h> static const int x[10] = {13,18,20,22,27,29,30,34,38,41}; static const int key = 34; int cmp(const void *lhs, const void *rhs){ return *(const int *)lhs - *(const int *)rhs; } int main(){ const int *p = (const int *)bsearch(&key, x, sizeof(x)/sizeof(x[0]), sizeof(x[0]), cmp); if (p){ const ptrdiff_t idx = p - x; printf("x[%td] = %d\n", idx, key); } else puts("not found"); return 0; }
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
이진탐색 구현 구글링하면 엄청많아요..
line by line으로 동작들을 구현하면 쉽게 만들수있어요.
우선 이진탐색의 동작과정을 아셔야할거같아요..
이진탐색은 오름차순으로 정렬된 배열인것이 전제조건이구요
배열의 중간을 시작위치로잡고 찾으려는값이 현재위치의 값보다 크냐? 크면 오른쪽에서탐색 작으면 왼쪽에서 탐색하는거에요.
Binary_search(int key) 이런식으로 함수를만들어서 input으로 받은 key값을 탐색시키는건데
자세한구현은 구글링으로..
도와드렸습니다
댓글 달기