¼±Çü Ž»ö


ÇÔ¼ö¸í
linearSearch  ¼±Çü Ž»ö
Çü½Ä
int linearSearch(DATA *data, int nmem, int target);

Àμö
typedef struct {
    int key;        /* ºñ±³ÀÇ Å°°¡ µÇ´Â Çʵå */
    int info;       /* ±× ¿ÜÀÇ Çʵå */
} DATA;

data    (ÀÔ·Â) µ¥ÀÌÅÍ ·¹ÄÚµåÀÇ ¹è¿­
nmem    (ÀÔ·Â) ·¹ÄÚµå ¹è¿­ÀÇ Å©±â
target  (ÀÔ·Â) Ž»ö ¸ñÇ¥·Î ÇÏ´Â Å°ÀÇ °ª
ÇÔ¼öÄ¡
¹ß°ßµÇ¾úÀ» °æ¿ì´Â ¹è¿­ÀÇ ¿ä¼Ò ¹øÈ£(¹è¿­ÀÇ ¼±µÎ ¿ä¼ÒÀÇ ¹øÈ£´Â 0).
¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì´Â -1.
ÁÖÀÇ »çÇ×

¿ë·Ê(linearSearch-test.c )

ÇÁ·Î±×·¥(linearSearch.c )
int linearSearch(DATA *data, int nmem, int target)
{
    int i = nmem;

    if (i > 0)
        while (i--) if ((*data++). key == target) return nmem - (i + 1);
    return -1;
}
¼³¸í
Ž»ö°ú´Â ¸¹Àº µ¥ÀÌÅͷκÎÅÍ ¼Ò¸ÁÀÇ µ¥ÀÌÅ͸¦ ã¾Æ³»´Â °ÍÀÌ´Ù. ÀÌ°ÍÀº ¸¹Àº Á¤º¸Ã³¸®·Î ÀÌ¿ëµÇ´Â ±âº» Á¶ÀÛÀÇ 1°³ÀÌ´Ù.

º»¼±Çü Ž»öÀº ¼ø¼­´ë·Î Ž»ö, ¼ø¼­ Ž»öÀ̶ó°íµµ ÇÑ´Ù. ¹è¿­ ¶Ç´Â ¸®½ºÆ®¿¡ ´Ã¾î³õÀ» ¼ö ÀÖ¾ú´Ù µ¥ÀÌÅ͸¦ ÇϳªÇϳª ¼ø¼­¿¡ ±¸¼®À¸·ÎºÎÅÍ Á¶»çÇÒ »Ó(¸¸Å­)ÀÇ ¼Ò¹ÚÇÑ Å½»ö¹ýÀÌ´Ù.

ºñ±³ÀÇ ·çÇÁ¸¦ µµ´Â ȸ¼ö´Â, Ž»öÀÌ ½ÇÆÐÀÇ °æ¿ì´Â nȸ, ¼º°øÀÇ °æ¿ì´Â Æò±Õ ÇØ n/2ȸ. ¾î·µç °è»ê·®Àº O(n)ÀÌ´Ù.

°ü·Ã ÇÔ¼ö
ÀÚü Á¶Á÷È­ Ž»ö, 2ºÐ Ž»ö, 2ºÐ Ž»ö³ª¹«, AVL³ª¹«, B³ª¹«