ÇØ½³ÀÇÁ¤ÀÇ

¿©·¯°³ÀÇ ¸íĪ(identifier)µéÀÌ ¹«ÀÛÀ§·Î µé¾îÀÖ´Â Å×ÀÌºí¿¡¼­ ƯÁ¤ ¸íĪÀ» ã°íÀÚ ÇÏ´Â °æ¿ì

¿øÇϴ Ű°ªÀ» °¡Áö´Â Å×À̺í Ç׸ñÀ» °Ë»öÇϱâ À§ÇØ Æ¯Á¤ÇÑ º¯È¯ ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ۰ªÀ» Ç׸ñ ÀÇ ÁÖ¼Ò·Î Á÷Á¢ ¹Ù²ã¼­ °Ë»öÇÏ´Â ¹æ¹ýÀ» ÇØ½³À̶ó ÇÑ´Ù. À̶§ º¯È¯ ÇÔ¼ö´Â ÇØ½¬ ÇÔ¼ö(hash function)¶ó ÇÑ´Ù.


ÇØ½³ÀÇÇʿ伺

¸íĪ Å×ÀÌºí¿¡¼­ Ű °ª°ú ÀÏÄ¡ÇÏ´Â ¸íĪÀ» ã´Â ¹æ¹ýÀ¸·Î´Â Å×ÀÌºí¿¡ ÀÖ´Â °¢°¢ÀÇ ¸íĪÀ» Ű °ª°ú Â÷·Ê·Î ºñ±³ÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù.

ÀÌ ¹æ¹ýÀ» »ç¿ëÇϸé ÃÖ¾ÇÀÇ °æ¿ì nȸÀÇ ºñ±³°¡ ÇÊ¿äÇÏ´Ù. ÇØ½³À» ÀÌ¿ëÇϸé ÇØ½¬ ÇÔ¼ö°¡ ۰ªÀ» ÇØ´ç ÁÖ¼Ò·Î ´Ü¹ø¿¡ º¯È¯ÇØ ÁֹǷΠ¸Å¿ì ºü¸¥ °Ë»öÀÌ °¡´ÉÇÏ´Ù.


Á¤Àû ÇØ½³

Á¤Àû ÇØ½³Àº °íÁ¤ Å©±âÀÇ Å×À̺íÀ» ÀÌ¿ëÇÏ¿© ÇØ½³ÇÏ´Â ¹æ¹ýÀ¸·Î¼­ Çѹø ÀúÀåµÈ ¸íĪÀÇ »ó´ëÀû À§Ä¡°¡ º¯°æµÇÁö ¾Ê´Â´Ù.

Á¤Àû ÇØ½³Àº ´ÙÀ½ ¼ø¼­·Î ¼³¸íÇÑ´Ù.


ÇØ½¬ Å×À̺í(hash Å×À̺í)

ÇØ½³À» ÀÌ¿ëÇÏÁö ¾Ê´Â °æ¿ì¿¡´Â ¸íεéÀÇ ¸ðµç °¡´ÉÇÑ Á¶ÇÕÀ» ¼ö¿ëÇÒ ¼ö ÀÖµµ·Ï ¸íĪ Å×À̺íÀ» ¸¸µé¾î¾ß ÇÑ´Ù.

Á¶ÇÕ °¡´ÉÇÑ ¸íεé Áß¿¡ ½ÇÁ¦·Î Á¸ÀçÇÏ´Â ¸íεéÀÇ ¼ö´Â ¸Å¿ì Àû±â ¶§¹®¿¡ ´ëºÎºÐÀÇ °ø°£Àº ³¶ºñµÈ´Ù.
¸íĪ Å×À̺íÀÇ ±â¾ï°ø°£ ³¶ºñ¸¦ ¸·±â À§ÇØ ÇØ½¬ Å×À̺íÀ» »ç¿ëÇÑ´Ù.
ÇØ½¬ Å×À̺íÀº b°³ÀÇ ¹öÄÏ(bucket)À¸·Î ±¸¼ºµÇ°í, ÇϳªÀÇ ¹öÄÏÀº s°³ÀÇ ½½·Ô(slot)À¸·Î ±¸¼ºµÈ´Ù. °¢°¢ÀÇ ½½·Ô¿¡´Â ¸íĪ Å×À̺í Ç׸ñó·³ ÇϳªÀÇ ¸íĪÀÌ ÀúÀåµÈ´Ù.

< ÇØ½¬ Å×À̺íÀÇ ±¸Á¶ >

ÇØ½¬ Å×À̺íÀÇ Å©±â´Â Çʿ信 µû¶ó ´Þ¸®ÇÒ ¼ö Àִµ¥ ÀϹÝÀûÀÎ ¸íĪ Å×ÀÌºíº¸´Ù´Â Å©±â°¡ ÇöÀúÈ÷ ÀÛ´Ù. ÇϳªÀÇ ¹öÄÏ¿¡ ¿©·¯°³ÀÇ ½½·ÔÀ» µÎ´Â ÀÌÀ¯´Â ¼­·Î ´Ù¸¥ µÎ°³ÀÇ ¸íĪÀÌ ÇØ½¬ ÇÔ¼ö¿¡ ÀÇÇØ µ¿ÀÏÇÑ ÁÖ¼Ò·Î º¯È¯µÇ´Â °æ¿ì µÎ ¸íĪÀ» °°Àº ¹öÄÏ¿¡ ÀúÀåÇϱâ À§Çؼ­ÀÌ´Ù.


ÇØ½³ÀÇ ¹®Á¦Á¡

ÇØ½³À» ÇÏ´Â °æ¿ì ¼­·Î ´Ù¸¥ µÎ°³ ÀÌ»óÀÇ ¸íĪÀÌ ÇØ½¬ ÇÔ¼ö¿¡ ÀÇÇØ µ¿ÀÏÇÑ ÁÖ¼Ò·Î º¯È¯µÇ´Â °æ¿ì°¡ ÀÖ´Ù. ÀÌ Çö»óÀ» "Ãæµ¹(collision)"À̶ó ÇÑ´Ù. Ãæµ¹ÀÌ ÀÚÁÖ ¹ß»ýÇϸé Ž»ö ½Ã°£ÀÌ ±æ¾îÁö´Â µî ¼º´ÉÀÌ ÀúÇÏµÇ¹Ç·Î ÇØ½¬ ÇÔ¼ö¸¦ ¼öÁ¤Çϰųª ÇØ½¬ Å×À̺íÀÇ Å©±â¸¦ ÀûÀýÈ÷ Á¶ÀýÇØ ÁÖ¾î¾ß ÇÑ´Ù.

Ãæµ¹ÀÌ ¹ß»ýÇÑ °æ¿ì °°Àº ¹öÄÏ¿¡ ÀÖ´Â ´Ù¸¥ ½½·Ô¿¡ ¸íĪÀ» ÀúÀåÇÏ¸é µÈ´Ù. ±×·¯³ª ½½·ÔÀÇ °¹¼ö¸¸Å­ Ãæµ¹ÀÌ »ý±â¸é ºó ½½·ÔÀÌ ¼ÒÁøµÇ¾î ¿À¹öÇ÷οì(overflow)°¡ »ý±æ ¼ö ÀÖ´Ù. ¿À¹ö Ç÷ο찡 ¹ß»ýÇϸé ÇØ½³¿¡ ÀÇÇØ ¿øÇÏ´Â ¸íĪÀ» ãÀ» ¼ö ¾ø°Ô µÇ¹Ç·Î, ¿À¹ö Ç÷ο츦 ÇØ°áÇϱâ À§ÇÑ ¹æ¹ýÀÌ °í¾ÈµÇ¾î¾ß ÇÑ´Ù.


ÇØ½¬ ÇÔ¼ö

ÇØ½¬ ÇÔ¼ö´Â ÀÔ·ÂµÈ Å°°ªÀ» ÇØ½¬ Å×À̺íÀÇ ÁÖ¼Ò·Î º¯È¯½ÃÄÑÁÖ´Â ÇÔ¼öÀÌ´Ù. ÇØ½¬ ÇÔ¼ö´Â °¡´ÉÇÑ Ãæµ¹ÀÌ Àû°Ô ¹ß»ýÇØ¾ß ÇϹǷÎ, ÇÔ¼öÀÇ Ãâ·Â°ªÀÌ ÇØ½¬ Å×À̺íÀÇ ÁÖ¼Ò ¿µ¿ª ³»¿¡¼­ °í¸£°Ô ºÐÆ÷µÇ¾î¾ß ÇÑ´Ù.

ÁÖ·Î »ç¿ëµÇ´Â ÇØ½¬ ÇÔ¼ö´Â ´ÙÀ½°ú °°´Ù.

mid-square ÇÔ¼ö
Ű °ªÀ» Á¦°öÇÑ ÈÄ¿¡ Áß°£¿¡ ¸î ºñÆ®¸¦ ÃëÇØ¼­ ÇØ½¬ Å×À̺íÀÇ ¹öÄÏ ÁÖ¼Ò·Î ¸¸µé¾î ÁØ´Ù. Ű °ªÀ» Á¦°öÇÏ¸é °á°ú°ªÀÇ Áß°£ ºñÆ®µéÀº Ű °ªÀÇ ¸ðµç ºñÆ®µé·ÎºÎÅÍ ¿µÇâÀ» ¹ÞÀ¸¹Ç·Î ¹öÄÏ ÁÖ¼Ò°¡ °í¸£°Ô ºÐ»êµÉ °¡´É¼ºÀÌ ³ô´Ù.
´ÙÀ½Àº °Ë»ö ۰¡ 5ºñÆ®·Î ±¸¼ºµÇ¾î ÀÖ°í, ¹öÄÏ ÁÖ¼Òµµ 5ºñÆ®·Î ±¸¼ºµÈ ÇØ½¬ Å×ÀÌºí¿¡¼­ mid-square ÇÔ¼ö ÇØ½³À» ÇÏ´Â ¿¹¸¦ º¸¿©ÁØ´Ù.

division ÇÔ¼ö
Ű °ªÀ» ÇØ½¬ Å×À̺íÀÇ Å©±â·Î ³ª´©¾î¼­ ±× ³ª¸ÓÁö¸¦ ¹öÄÏ ÁÖ¼Ò·Î ¸¸µé¾îÁØ´Ù.
¹öÄÏ ÁÖ¼Ò = Ű °ª % ÇØ½¬ Å×À̺í Å©±â
folding ÇÔ¼ö
Ű °ªÀ» ¹öÄÏ ÁÖ¼Ò Å©±â¸¸Å­ÀÇ ºñÆ®¼ö¸¦ °¡Áö´Â ºÎºÐÀ¸·Î ºÐÇÒÇÑ ÈÄ, ºÐÇÒµÈ °ÍÀ» ÇÕ»êÇÏ¿© ¹öÄÏ ÁÖ¼Ò¸¦ ¸¸µé¾îÁØ´Ù.
´ÙÀ½ ±×¸²Àº Ű °ªÀÌ "12321631067"ÀÌ°í ¹öÄÏ ÁÖ¼Ò°¡ 10Áø¼ö 3ÀÚ¸®·Î ±¸¼ºµÇ¾î ÀÖ´Â °æ¿ìÀÇ ¿¹¸¦ º¸¿©ÁØ´Ù.


¿À¹öÇ÷οìÀÇ ÇØ°á¹æ¹ý

¼±Çü °³¹æ ÁÖ¼ÒÁöÁ¤¹ý

¼±Çü °³¹æ ÁÖ¼ÒÁöÁ¤¹ýÀº Ãæµ¹ÀÌ ¹ß»ýÇÑ °æ¿ì¿¡ ±× À§Ä¡·ÎºÎÅÍ ºñ¾îÀÖ´Â ´Ù¸¥ ¹öÄÏÀ» ã¾Æ ±×°÷¿¡ ¸íĪÀ» ÀúÀåÇÏ´Â ¹æ¹ýÀ¸·Î¼­ ¼±Çü Ž»ö¹ý(linear probing)À̶ó°íµµ ºÒ¸°´Ù.
¼±Çü °³¹æ ÁÖ¼ÒÁöÁ¤¹ýÀ» ÀÌ¿ëÇÒ ¶§ ÇØ½¬ Å×À̺íÀº 1Â÷¿ø ¹è¿­ ÇüŸ¦ °¡Áø´Ù.

¸íĪÀ» »ðÀÔÇÏ´Â °æ¿ì

  1. ÇØ´ç Ű °ªÀ» °¡Áö´Â ¸íĪÀ» ÇØ½¬ ÇÔ¼ö·Î º¯È¯ÇÏ¿´À» ¶§ ±× À§Ä¡ÀÇ ¹öÄÏÀÌ ºñ¾îÀÖÀ¸¸é »ðÀÔÇÑ´Ù.
  2. ¹öÄÏÀÌ ºñ¾îÀÖÁö ¾ÊÀ¸¸é ±× À§Ä¡ºÎÅÍ ÇØ½¬Å×À̺íÀ» Â÷·Ê·Î Á¶»çÇÏ¿© ºó ¹öÄÏÀ» ãÀº ÈÄ ±× À§Ä¡¿¡ ¸íĪÀ» »ðÀÔÇÑ´Ù.
  3. ÇØ½¬ Å×À̺íÀÇ ³¡±îÁö ºó ¹öÄÏÀÌ ¾øÀ¸¸é Å×À̺íÀÇ Ã³À½ºÎÅÍ ¿ø·¡ »ðÀÔÇÑ À§Ä¡±îÁö ºó ¹öÄÏÀ» ã´Â´Ù.
  4. ºó ¹öÄÏÀÌ ÀüÇô ¾ø´Â °æ¿ì´Â ¸íĪÀ» »ðÀÔÇÒ ¼ö ¾øÀ¸¹Ç·Î ¿À·ù ¹ß»ýÀ» °íÁöÇÑ´Ù.

¸íĪÀ» °Ë»öÇÏ´Â °æ¿ì

  1. ÇØ´ç Ű °ªÀ» °¡Áö´Â ¸íĪÀ» ÇØ½¬ ÇÔ¼ö·Î º¯È¯ÇÏ¿© ¾ò¾îÁø À§Ä¡¿¡ ¿øÇÏ´Â ¸íĪÀÌ µé¾îÀÖ´ÂÁö Á¶»çÇÑ´Ù.
  2. ¿øÇÏ´Â ¸íĪÀÌ ¾ø´Ù¸é »ðÀԽÿ¡ Ãæµ¹ÀÌ ¹ß»ýÇÑ °ÍÀ̹ǷÎ, ±× À§Ä¡ºÎÅÍ Â÷·Ê·Î ÇØ´ç ¸íĪÀ» °Ë»öÇÑ´Ù.

¼±Çü °³¹æ ÁÖ¼Ò ÁöÁ¤¹ýÀÇ Àå´ÜÁ¡

ÀåÁ¡

´ÜÁ¡


üÀÎ ÀÌ¿ë¹ý

Ãæµ¹ÀÌ ¹ß»ýÇÑ °æ¿ì¿¡ µ¿ÀÏ ¹öÄÏ¿¡ µé¾î°¡¾ßÇÒ ¸íεéÀ» ¿¬°á ¸®½ºÆ®·Î ÀúÀåÇØ µÎ´Â ¹æ¹ýÀÌ´Ù.

üÀÎ ÀÌ¿ë¹ýÀ» ÀÌ¿ëÇÒ ¶§´Â ÇØ½¬ Å×À̺íÀÇ °¢ ¹öÄÏÀÌ ÇϳªÀÇ ¿¬°á ¸®½ºÆ®°¡ µÈ´Ù.

¸íĪÀ» »ðÀÔÇÏ´Â °æ¿ì

  1. ÇØ´ç Ű °ªÀ» °¡Áö´Â ¸íĪÀ» ÇØ½¬ ÇÔ¼ö·Î º¯È¯ÇÏ¿© ÁÖ¼Ò¸¦ ¾ò¾î³½ ÈÄ ±× À§Ä¡¿¡ ÀÖ´Â ¿¬°á ¸®½ºÆ®¿¡ »ðÀÔÇÑ´Ù.

¸íĪÀ» °Ë»öÇÏ´Â °æ¿ì

  1. ÇØ´ç Ű °ªÀ» °¡Áö´Â ¸íĪÀ» ÇØ½¬ ÇÔ¼ö·Î º¯È¯ÇÏ¿© ÁÖ¼Ò¸¦ ¾ò¾î³½´Ù.
  2. ¾ò¾îÁø À§Ä¡ÀÇ ¿¬°á ¸®½ºÆ®¿¡ ³ëµå°¡ ÇѰ³ »ÓÀ̸é Ãæµ¹ÀÌ ¹ß»ýÇÏÁö ¾ÊÀº °ÍÀ̹ǷΠ±× °ªÀ» Àоî¿Â´Ù.
  3. ¾ò¾îÁø À§Ä¡ÀÇ ¿¬±æ ¸®½ºÆ®¿¡ ³ëµå°¡ µÎ°³ ÀÌ»óÀ̸é, ±× ¿¬°á ¸®½ºÆ®ÀÇ ³ëµåµéÀ» Â÷·Ê·Î °Ë»öÇÏ¿© ±× °ªÀ» Àоî¿Â´Ù.

üÀÎ ÀÌ¿ë¹ýÀÇ Àå´ÜÁ¡

ÀåÁ¡

´ÜÁ¡


µ¿Àû ÇØ½³

µ¿Àû ÇØ½³ÀÇ Çʿ伺

Ç׸ñ°ú »ðÀÔ°ú »èÁ¦°¡ ºó¹øÈ÷ ¹ß»ýÇÏ´Â ÀÀ¿ë¿¡´Â Á¤Àû ÇØ½³ÀÌ ÀûÇÕÄ¡ ÀûÇÕÄ¡ ¸øÇÏ´Ù. °íÁ¤µÈ Å©±âÀÇ ÇØ½¬ Å×À̺íÀ» »ç¿ëÇÏ´Â Á¤Àû ÇØ½³ÀÇ °æ¿ì, »ðÀÔÀÌ ¸¹¾ÆÁö¸é Å×À̺íÀÌ °¡µæÂ÷¼­ »ç¿ëÀÌ ºÒ°¡´ÉÇÏ°í »èÁ¦°¡ ¸¹¾ÆÁö¸é ¸¹Àº °ø°£ÀÌ »ç¿ëµÇÁö ¾ÊÀ¸¹Ç·Î ³¶ºñ°¡ ¹ß»ýÇÑ´Ù. ÀÌ·¯ÇÑ ÀÀ¿ë¿¡ ÀûÇÕÇϵµ·Ï °í¾ÈµÈ °ÍÀÌ µ¿Àû ÇØ½³(dynamic hashing) ¶Ç´Â È®À强 ÇØ½³(extendible hashing)ÀÌ´Ù.

µ¿Àû ÇØ½³ÀÇ ±¸¼º

µ¿Àû ÇØ½³À» À§Çؼ­ ÇØ½¬Å×ÀÌºí ´ë½Å¿¡ Æ®¶óÀÌ(trie)¶ó´Â ÀڷᱸÁ¶¸¦ ÀÌ¿ëÇÑ´Ù.

Æ®¶óÀÌ´Â ÀÔ·ÂŰÀÇ °¢ ºñÆ®°ª¿¡ µû¶ó 2°³ÀÇ °¡Áö·Î ºÐ±âµÇµµ·Ï ¸¸µé¾îÁø °ÍÀÌ´Ù. À§ÀÇ ±×¸²Àº µÎ ºñÆ®ÀÇ Å°¸¦ °¡Áö´Â Æ®¶óÀÌ´Ù. Ű °ªÀÇ ¿ì´Ü ºñÆ®(LSB)ºÎÅÍ °Ë»çÇÏ¿© ±× °ªÀÌ 0À̸é ù¹øÂ° ·¹º§¿¡¼­ À§ÂÊÀ¸·Î ºÐ±âÇϰí , 1ÀÌ¸é ¾Æ·¡ÂÊÀ¸·Î ºÐ±âÇÑ´Ù. ±× ´ÙÀ½¿¡´Â ¿À¸¥ÂÊ ³¡¿¡¼­ µÎ¹øÂ° ºñÆ®¸¦ °Ë»çÇÏ¿© ±× °ªÀÌ 0ÀÌ¸é µÎ¹øÂ° ·¹º§¿¡¼­ À­ÂÊÀ¸·Î 1ÀÌ¸é ¾Æ·¡ÂÊÀ¸·Î ºÐ±âÇÑ´Ù. ½ÇÁ¦ Ç׸ñµéÀÌ ÀúÀåµÇ´Â ºÎºÐÀº ÇØ½¬ Å×À̺íÀÇ ¹öÄÏó·³ ¿©·¯°³ÀÇ ½½·ÔÀÌ Á¸ÀçÇÑ´Ù. µ¿Àû ÇØ½³¿¡¼­´Â ¹öÄÏÀ» ÆäÀÌÁö¶ó ºÎ¸¥´Ù.

µ¿Àû ÇØ½³¿¡¼­ÀÇ °Ë»ö

À§¿¡ ³ª¿­µÈ °Íó·³ 6ºñÆ®·Î ÀÌ·ç¾îÁø 6°³ÀÇ ¸íĪÀÌ Æ®¶óÀÌ¿¡ ÀúÀåµÇ¾î ÀÖ´Ù°í ÇÏÀÚ. Æ®¶óÀÌÀÇ ¸»´Ü¿¡ ÀÖ´Â ÆäÀÌÁö¿¡´Â µÎ°³ÀÇ ½½·ÔÀÌ ÀÖ´Ù. ÀÌ·¯ÇÑ °æ¿ì 4°³ÀÇ ÆäÀÌÁö¿¡ ¸íεéÀ» ÀúÀåÇÒ ¼ö ÀÖÀ¸¹Ç·Î µÎºñÆ®ÀÇ Å°°¡ ÇÊ¿äÇÏ´Ù.

°Ë»öÀ» À§Çؼ­ ¿ì´ÜÀÇ µÎ ºñÆ®¸¦ °Ë»çÇÏ¿© ºñÆ®°ª¿¡ µû¶ó À§, ¾Æ·¡·Î ºÐ±âÇÑ´Ù. ÇØ´ç ÆäÀÌÁö¸¦ ãÀº ÈÄ ÆäÀÌÁö³»ÀÇ ½º·Ô¿¡ ÀúÀåµÈ ¸íεéÀ» Â÷·Ê·Î ºñ±³ÇÏ¿© ¿øÇÏ´Â ¸íĪÀ» °Ë»öÇØ³½´Ù.

µ¿Àû ÇØ½³¿¡¼­ÀÇ »ðÀÔ

<»ðÀÔÀü>

À§ÀÇ ±×¸²¿¡ ³ª¿Â Æ®¶óÀÌ¿¡ "110101"À̶ó´Â ¸íĪÀ» »ðÀÔÇØ º»´Ù. ¸ÕÀú ¸íĪÀÌ »ðÀ﵃ ÆäÀÌÁö¸¦ ã´Â´Ù. ¿ì´ÜÀÇ µÎ ºñÆ®¸¦ ÀÌ¿ëÇÏ¿© °Ë»öÇϸé 3¹ø ÆäÀÌÁö°¡ ÇØ´çµÇ´Âµ¥ ÀÌ ÆäÀÌÁö¿¡´Â ´õÀÌ»ó ¸íĪÀ» ÀúÀåÇÒ ½½·ÔÀÌ ¾ø±â ¶§¹®¿¡ µÑ·Î ºÐÇÒÇØ¾ß ÇÑ´Ù. ÆäÀÌÁö°¡ ºÐÇÒµÇ¾î ·¹º§ÀÌ ÇÑ ´Ü°è ±í¾îÁö¸é °Ë»ö¿¡ ÇÊ¿äÇÑ ºñÆ® ¼ö°¡ ÇѰ³ ´Ã¾î³­´Ù.

<»ðÀÔÈÄ>