lecture Home > ASP Tips > Algorithm

Algorithm

   °­Á ÃÖÃÊ ÀÛ¼ºÀÏ : 2000³â 12¿ù 28ÀÏ
   °­Á ÃÖÁ¾ ¼öÁ¤ÀÏ : 2001³â 12¿ù 28ÀÏ

   ÀÛ¼ºÀÚ : caelin(±è ¹Î¿À)
   ÆíÁýÀÚ : Taeyo(±è Å¿µ)

   °­Á Á¦¸ñ : Replace ÇÔ¼ö¿Í bubble_sort ¾Ë°í¸®Áò

°­Á Àü Å¿ÀÀÇ Àâ´ã>

±è¹Î¿À´ÔÀÇ ¾Ë°í¸®Áò °­Á ±× µÎ¹øÂ° À̾߱âÀÔ´Ï´Ù. ^^  À̹ø ³»¿ëÀº ²Ï À¯ÀÍÇÑ °Íµé·Î ±¸¼ºµÇ¾ú³×¿ä


°­Á ½ÃÀÛ >

Replace ÇÔ¼ö¿Í bubble_sort ¾Ë°í¸®Áò

ù°­ÀǸ¦ ¸¶Ä¡°í ³ª¼­ »ý°¢º¸´Ùµµ ¸¹Àº ºÐµéÀÌ °Ý·ÁÀÇ ¸ÞÀÏÀ» º¸³»Áּż­ ³Ê¹« °¨»ç Çß½À´Ï´Ù. ¾ÆÁ÷ ¾Ë°í¸®ÁòÀÌ ¹«¾ùÀÌ°í ¿Ö ¹è¿ö¾ß ÇÏ´ÂÁö ¸ð¸£°Ú´Ù°í ÇϽŠºÐµéµµ ²Ï ¸¹¾Ò½À´Ï´Ù. ±×Áß ¾î¶² ºÐÀÌ  ±×·¯½Ã´õ±º¿ä .

"Æò¹üÇÑ À¥µðÀÚÀ̳ʴ Æ÷Åä¼¥À» Àß´Ù·ç°í ¶Ù¾î³­ À¥µðÀÚÀ̳ʴ ³²µéÀÌ µû¶ó¿Ã¼ö ¾ø´Â °¨°¢ÀÌ ÀÖ´Ù.."

Á¦°¡ ¸»¾ÈÇØµµ À̶æÀÌ ¹«¾ùÀÎÁö À߾˰ÍÀ̰í .. ¿ì¸®´Â °¨°¢À» ¹è¿ì±âÀ§ÇØ ¾Ë°í¸®ÁòÀ» ¹è¿î´Ù »ý°¢Çϼŵµ µË´Ï´Ù. °­Á°¡ Á¶±Ý ´Ê¾ú´Âµ¥  ¾î¶²°­Á¸¦ ÇØ¾ß ÇÒÁö ¼ÖÁ÷È÷ Á¦ ½º½º·Î ±âÁØÀÌ ÀâÈ÷Áú ¾Ê¾Ò¾ú½À´Ï´Ù. Á» ´õ ÀÌ·ÐÀûÀ¸·Î °¡¾ß ÇÒ°ÍÀΰ¡ ¾Æ´Ï¸é ½Ç¹«¿¡ ÇÊ¿äÇѰÍÀ» °¡¸£ÃÄ µå·Á¾ß ÇÏ´ÂÁö T.T  ÀÏ´Ü ÁÖÁ¦°¡ ¾Ë°í¸®ÁòÀ̱⠶§¹®¿¡  replace ¸¦ ÇÔ¼ö¸¦ ¸¸µå´Â ¹ý°ú ¹®ÀÚ¿­À» Á¤·ÄÇÏ´Â ¹ýÀ» ¾Ë·Áµå¸®°Ú½À´Ï´Ù.

»ç½Ç asp ¿¡¼­ string À» ´Ù·ç±â´Â ±²ÀåÈ÷ ½±½À´Ï´Ù. °¢Á¾ ÇÔ¼öµéÀÌ Áö¿øÀ» ÇØÁֱ⠶§¹®¿¡ ¾î·ÆÁö ¾Ê°Ô ¹®ÀÚ¿­À» ÀÚ¸¦¼öµµ ÀÖ°í ¹®ÀÚ¿­À»  ¹Ù²Ü¼öµµ ÀÖ½À´Ï´Ù. ¶ÇÇÑ  ¹®ÀÚ¿­À» Ãß°¡ ÇÒ¼öµµ ÀÖ½À´Ï´Ù.  ÇÏÁö¸¸  ´Ù¸¥¾ð¾î¸¦ ÇØº¸½ÅºÐµéÀº ¾Æ½Ã°ÚÁö¸¸ ÀÌ ¹®ÀÚ¿­À» ´Ù·é´Ù´Â°ÍÀº »ó´çÈ÷ º¹ÀâÇÏ°í ±ÍÂúÀº ÀÏÀ̱⠱îÁö ÇÕ´Ï´Ù.    

°¡±î¿î ¿¹¸¦ µé¾î ¿©·¯ºÐÀº °Ô½ÃÆÇÀ» ¸¸µé¶§ ÀÛÀºµû¿òÇ¥  ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ replace(str, "'", "''" ) °¡ Ç×»ó µé¾î °©´Ï´Ù. ±×·¸´Ù¸é ¾î¶»°Ô ÇØ¾ß ÇÒ±î¿ä...°Ô½ÃÆÇ À§¿¡´Ù°¡ " ÀÛÀº µû¿òÇ¥°¡ µé¾î°¡¸é ¿¡·¯°¡ ³ª´Ï ¾²Áö ¸»¾Æ ÁÖ¼¼¿ä " ¶ó°í ÇÏ¸é µÉ±î¿ä ?

¾Æ ÀÌ·±°ÍÀº ¿ì¸® ÇÁ·Î±×·¡¸ÓÀÇ ÀÚÁ¸½ÉÀÌ ¿ë³³ÇÏÁö ¸øÇÕ´Ï´Ù..  ±×·¸´Ù¸é ¿ì¸®´Â asp ¿¡ replace ¶ó´Â ÇÔ¼ö°¡ ¾ø´Ù°í »ý°¢Çϰí replace ÇÔ¼ö¸¦ ¸¸µé¾î º¸µµ·ÏÇÏÁÒ.. À̰ÍÀÇ ¼º´ÉÀº  ±âÁ¸ÀÇ replace ÇÔ¼öº¸´Ù ºü¸£´Ù°Å³ª ÇÏÁö´Â ¾ÊÀ»°ÍÀÔ´Ï´Ù. ¿Ö³ÄÇÏ¸é ±× replace ÇÔ¼ö´Â ºÐ¸í c¾ð¾î·Î ¸¸µé¾î Á³À»Å״ϱî¿ä .. ¿ì¸®´Â ´ÜÁö ¿ø¸®¸¦ ¾Ë°í³ª¼­ " ÇÊ¿äÇÑ ÇÔ¼öµûÀ§´Â ¾ðÁ¦µçÁö ¸¸µé¼ö ÀÖ¾î!!! " ¶ó´Â Àڽۨ°ú   ¹®ÀÚ¿­À» ´Ù·ç´Â ¹æ¹ý¿¡ ´ëÇØ¼­¸¸ ¾Ë¸é µË´Ï´Ù.

ÀÏ´Ü ¿ì¸®´Â  left ÇÔ¼ö¿Í right , mid , len ÇÔ¼ö´Â »ç¿ëÇÒ¼ö ÀÖ´Ù°í °¡Á¤ÇØ¾ß ÇÕ´Ï´Ù. À̰ÍÀº asp ·Î ±¸ÇöÇϱâ´Â °ÅÀÇ ºÒ°¡´ÉÇÕ´Ï´Ù. C¿¡¼­´Â Æ÷ÀÎÅÍ ¶ó´Â°ÍÀÌ Àֱ⠶§¹®¿¡ ÀÌ·±ÇÔ¼ö±îÁöµµ ¸¸µé¼ö ÀÖÁö¸¸   asp ¿¡¼­´Â ±×Á¤µµ±îÁö´Â ÈûÀÌ µå³»¿ä T.T

 replace ÇÔ¼öÀÇ ¿ø¸®´Â °£´ÜÇÕ´Ï´Ù  str À̶ó´Â ¹®ÀÚ¿­ÀÌ ÀÖ°í ¿©±â¼­ ' ¸¦ ãÀ¸¸é '' ·Î ¹Ù²ã¼­ str¿¡ ÀúÀ常 ½ÃŰ¸é µÇ´Â °ÍÀÔ´Ï´Ù.  ¾Æ ±×Àü¿¡ ¿©·¯ºÐµé¿¡°Ô  ÇÔ¼ö¿¡¼­ ¸Þ¸ð¸® ÁÖ¼ÒÀÇ Àü´Þ°ú °ªÀü´ÞÀÇ Â÷ÀÌ¿¡ ´ëÇØ¼­ ¸»¾¸À» µå·Á¾ß ÇÒ °Í °°½À´Ï´Ù. ÀÏ´Ü ¿ì¸®´Â Æ÷ÀÎÅͰ¡ ¹«¾ùÀÎÁö À߸𸣴 ºÐµéÀÌ ¸¹°í asp ¿¡¼­ Æ÷ÀÎÅÍ´Â ±¸ÇöÇÒ¼öµµ ¾øÀ»»Ó´õ·¯ »ç¿ëÇÒ Àϵµ °ÅÀÇ ¾ø½À´Ï´Ù.

±×·±µ¥ ¿ì¸®´Â ¾Ë°Ô ¸ð¸£°Ô Æ÷ÀÎÅÍ °³³ä°ú ºñ½ÁÇѰÍÀ» »ç¿ëÇϰí ÀÖ½À´Ï´Ù. ¹Ù·Î ·¹ÆÛ·±½º¶ó´Â °ÍÀÌÁö¿ä.. À̰ÍÀº Æ÷ÀÎÅͰ¡ ³Ê¹« ¾î·Æ±â ¶§¹®¿¡ java ³ª C# ¿¡¼­ Æ÷ÀÎÅ͸¦ ´ëü Çϱâ À§ÇØ ³ª¿Â°ÍÀε¥ ÀÏ´Ü ¹×ÀÇ ÇÔ¼ö¸¦ º¸¸é¼­ ¼³¸íÇϰڽÀ´Ï´Ù.

<%
  sub test(str_mother)
      str_mother = "¾ö¸¶µ·¾ø´Ù."
  end sub

  str_me = "¾ö¸¶µ·Áà"
  call test(str_me) ' ÇÔ¼ö È£Ãâ 

  response.write str_me  ' <- ¿©±â¼­ °ú¿¬ ¾î¶²°ªÀÌ ÂïÈú±î¿ä.. (Á÷Á¢Çѹø¾¿ ÇØº¸¼¼¿ä . )
%>

ÇØº¸½Ã¸é ¾Ë°ÚÁö¸¸   str_me ¿¡´Â "¾ö¸¶µ·¾ø´Ù." ¶ó´Â ¹®ÀÚ¿­ÀÌ µé¾î°¡ ÀÖ½À´Ï´Ù. ÀÌ»óÇÕ´Ï´Ù.. ¿ì¸®´Â str_me ¶ó´Â º¯¼ö¿¡ °ªÀ» ³Ö¾îÁØÀûÀÌ ¾ø°í ´ÜÁö ÆÄ¶ó¹ÌÅÍÀÎ str_ mother ¿¡¸¸ "¾ö¸¶µ·¾ø´Ù." ¶ó´Â ¹®ÀÚ¿­À» ³Ö¾î Áá´Âµ¥ str_me °ªµµ º¯°æ µÇ¾ú½À´Ï´Ù.

ÀÌ°Ô ¿ÖÀÌ·¸°Ô µÇ³Ä¸é vb³ª asp ´Â ±âº»ÀûÀ¸·Î call by reference ¸¦ »ç¿ëÇØ¼­ ÇÔ¼ö¿¡ °ªÀ» Àü´Þ ÇÕ´Ï´Ù.  Áï call test(str_me) ¶ó´Â ÇÔ¼ö¸¦ È£ÃâÇϸé str_me ¿¡ µé¾îÀÖ´Â "¾ö¸¶µ·Áà" ¶ó´Â °ªÀÌ ³Ñ¾î °¡´Â °ÍÀÌ Àý´ë ¾Æ´Õ´Ï´Ù . ³»ºÎÀûÀ¸·Î ·Î´Â  str_me ÀÇ ¸Þ¸ð¸® ÁÖ¼Ò°¡ ³Ñ¾î °©´Ï´Ù..

±×·¸°Ô str_mother ´Â str_me ÀÇ ¸Þ¸ð¸®ÁÖ¼Ò¸¦  Àоî¿Í¼­ str_me ¿Í  µ¿ÀÏÇÑ ÁÖ¼Ò¸¦ °°°Ô µÇ°í str_mother ´Â str_me °¡ °¡¸£Å°°í ÀÖ´Â ÁÖ¼Ò¿Í µ¿ÀÏÇÑ ÁÖ¼Ò¸¦ °®Àº »óÅ¿¡¼­   str_mother ÀÇ °ªÀ» = "¾ö¸¶µ·¾ø´Ù" ·Î ¹Ù²Ù°Ô µÇ¸é  µ¿ÀÏÇÑ ¸Þ¸ð¸®ÁÖ¼Ò¸¦ °¡¸®Å°°í ÀÖ´Â °÷ÀÇ °ªÀÌ º¯°æµÇ°Ô ¶§¹®¿¡   str_me ÀÇ °ªµµ º¯°æÀÌ µË´Ï´Ù.

Áï º¯¼öÀÇ À̸§Àº ´Ù¸£Áö¸¸  °°Àº ¸Þ¸ð¸® ÁÖ¼Ò°ªÀ» °®°Ô ÇØ¼­  ÇϳªÀÇ º¯¼ö°ªÀ» º¯°æÇÏ¸é  ±× ¸Þ¸ð¸®ÁÖ¼Ò°¡ °¡¸£Å°°í ÀÖ´Â °ªµµ º¯°æÀÌ µË´Ï´Ù. À̰ÍÀº »ó´çÈ÷ Æí¸®ÇÑ ¹æ¹ýÀÌ°í ¾Ë°Ô ¸ð¸£°Ô ¿ì¸®´Â ÀüºÎ call by reference ¸¦ »ç¿ëÇϰí ÀÖ¾ú´ø °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸  º¯°æµÇÁö ¾Ê°í °ª¸¸ ³Ñ°ÜÁà¾ß ÇÒ¶§µµ ÀÖ½À´Ï´Ù.. À̰ÍÀ» call by value ¶ó°í ÇÏ°í  ¼Óµµµµ ¾à°£ ºü¸£´Ù°í ÇÕ´Ï´Ù.

str_me = "¾ö¸¶µ·Áà"

         sub test(byval str_temp)
                 str_temp = "¾ö¸¶µ·¾ø´Ù."
        end sub

call test(str_me)

Response.write str_me    '-> À̰ÍÀÇ °ªÀº "¾ö¸¶µ·Áà"

ÆÄ¶ó¹ÌÅÍ ¾Õ¿¡´Ù°¡ byval À̶ó°í ÇØÁÖ¸é ¸Þ¸ð¸® ÁÖ¼Ò´Â ÇÊ¿ä ¾øÀÌ °ª¸¸ Àü´Þ ¹Þ°Ú´Ù´Â ¶æÀÔ´Ï´Ù.

»ç½Ç À̰ÍÀº asp º¸´Ù´Â ¿©·¯ºÐÀÌ vb °øºÎ ÇϽǶ§ ¸¹ÀÌ µµ¿òÀÌ µÉµíÇÏ°í ¶Ç À̹ø¿¡ ¹è¿ï ÇÔ¼ö¿¡ ¼­ call by referance ¸¦ »ç¿ëÇØ¾ß Çϴµ¥ ¿©·¯ºÐµéÀÌ Çä°¥¸®½Ç±îºÁ ¹Ì¸® ¸»¾¸ µå·È½À´Ï´Ù.

1. replace ÇÔ¼ö ¸¸µé±â

ÀÏ´Ü str_mother = "¾ö¸¶'õ¿ø'¸¸Áà" ¿¡ ÀÛÀº µû¿òÇ¥°¡ µÎ°³ µé¾î ÀÖ½À´Ï´Ù. ¿ì¸®´Â À̰ÍÀ» "¾ö¸¶''õ¿ø''¸¸Áà" ·Î ¸¸µé¾î¾ß ÇÕ´Ï´Ù.  ¿ø¸®´Â ¾ÆÁÖ °£´ÜÇÕ´Ï´Ù     µé¾î¿Â ¹®ÀÚ¿­À» ÇѰ³¾¿ Àß¶ó¼­  ºñ±³ ÇÑ´ÙÀ½ ÀÛÀºµû¿òÇ¥¶ó¸é Å«µû¿òÇ¥·Î ¹Ù²ãÁÖ¸é µÇ´Â°ÍÀÔ´Ï´Ù. Ãʺ¸ÀںеéÀÌ ¿©±â¼­ À߸øÇϴ°ÍÀÌ ¹®ÀÚ¿­À» ÇѰ³¾¿ ÀÚ¸£´Â °Í°ú  ¸¶Áö¸·¿¡ ¹®ÀÚ¿­À» Çϳª¾¿ ´õÇØ¼­ ´Ù½Ã »õ·Î¿î ¹®ÀÚ¿­À» ¸¸µé¾î µÇµ¹·Á Áִ°ÍÀ» ´ëºÎºÐ Àß ¸øÇÕ´Ï´Ù. ¹Ø¿¡ ¼Ò½º¸¦ Àá±ñ º¸°Ú½À´Ï´Ù.

 <%
str_mother = "¾ö¸¶Ãµ'¿ø'¸¸Áà"             'ÃʱâÀÇ ¹®ÀÚ¿­
call replace_str(str_mother, "'", "''")    ' ÇÔ¼ö È£Ãâ
Response.Write str_mother                ' str_mother  

sub replace_str (byref str , byval equal , byval change)   ' (¹®ÀÚ¿­, ºñ±³ÇÒ¹®ÀÚ, ¹Ù²Ü¹®ÀÚ)
         for i = 1 to len(str)             ' ¹Ýº¹¹®Àº strÀÇ ±æÀÌ ¸¸Å­µ·´Ù. 
             str_temp =  mid(str, i ,  1)    
             ' ÀÌ·±½ÄÀ¸·Î Çϸé str_temp ¿¡´Â ÇѰ³ÀÇ ¹®ÀÚ¾¿ÀÌ ´ã±ä´Ù Áï óÀ½¿¡´Â "¾ö"
             ' µÎ ¹øÂ° ¹Ýº¹¹®Â°¿¡´Â "¸¶" ÀÌ·±½Ä....

             if str_temp = equal then       ' ¸¸¾à¿¡   "¾ö" À̶ó´Â±ÛÀÚ°¡   ÀÛÀºµû¿òÇ¥ ¿Í °°´Ù¸é 
                       str_temp = change            ' Å«µû¿òÇ¥·Î ¹Ù²Û´Ù. 
             end if
             str_return  = str_return + str_temp 
             ' ¹®ÀÚ¿­À» Çϳª¾¿ ´õÇØ¼­ ´Ù½Ã ÇϳªÀÇ ¹®ÀÚ¿­À» ¸¸µç´Ù. < BR >          next

         str = str_return            
         ' µÇµ¹·Á ÁØ´Ù. (¿©±â¼­ ÀÌ°Ô °¡´ÉÇÑ ÀÌÀ¯´Â byref Áï call by reference À̱⠶§¹®) 
 end sub
%>

1.  ÀÏ´Ü str_mother ¿¡´Â  "¾ö¸¶Ãµ'¿ø'¸¸Áà" ¶ó´Â °ªÀÌ µé¾îÀÖ°í À̰ÍÀ»  call replace_str(str_mother, "'", "''")  ¿¡¼­ ÇÔ¼öÈ£ÃâÀ» ÇÏ¿´½À´Ï´Ù. ±×·¸´Ù¸é ÇÔ¼ö ³»ºÎ¿¡¼­´Â ¾î¶² µ¿ÀÛÀ»ÇÒ±î¿ä?. ÀÏ´Ü ¹®ÀÚ¿­À» ÇϳªÇϳª¾¿ ºñ±³ ÇÏ·Á¸é  ¹Ýº¹¹®ÀÌ ÇÊ¿äÇÒ°ÍÀ̰í ÀÌ ¹Ýº¹¹®Àº ¹®ÀÚ¿­ÀÇ ³¡±îÁö µ¹¸é µË´Ï´Ù..

for i = 1 to len(str)

2. ±×´ÙÀ½¿¡´Â ¹®ÀÚ¿­À» Çϳª¾¿ Àß¶ó¼­ ¾îµò°¡¿¡ ÀúÀå½ÃÄÑ¾ß ÇÑ´Ù. mid ÇÔ¼ö´Â   ("abcdefg" , 2, 3 ) À̶ó°í Çϸé abcdefg ÀÇ µÎ¹øÂ° ±ÛÀÚºÎÅÍ 3°³¸¦ °¡Á®¿Â´Ù  Áï bcd ¸¦ °¡Á®¿À´Â ÇÔ¼öÀÌ´Ù. ¿©±â¼­ ¿ì¸®´Â ÇѱÛÀÚ¾¿ ¸¸ °¡Á®¿À¸é µÈ´Ù.    Áï 1ºÎÅÍ ¸¶Áö¸· ¹øÈ£±îÁö °¡Á®¿Ã·Á¸é 

str_temp =  mid(str, i ,  1)

3. ÀÌÁ¦ str_temp ¿¡´Â ù¹øÂ°±ÛÀÚ°¡ ´ã°Ü ÀÖÀ» °ÍÀ̰í À̰ÍÀÌ ' ¿Í °°´Ù¸é  '' ·Î ¹Ù²ãÁØ´Ù.  

    if str_temp = equal then         -> if str_temp = "'" then
       str_temp = change              ->   str_temp = "''" 
    end if                                      -> end if

4. ÀÌÁ¦ ±× ¹®ÀÚ¿­À» Çϳª¾¿ Á¶ÇÕÇØ¼­ »õ·Î¿î ¹®ÀÚ¸¦ ¸¸µç´Ù. 

    str_return  = str_return + str_temp    '

5. °á°ú °ªÀ» µÇµ¹·ÁÁØ´Ù ( »ç½Ç µÇµ¹·ÁÁشٴ ¸»Àº  Ʋ¸° °ÍÀÌ´Ù  °°Àº ¸Þ¸ð¸® ÁÖ¼Ò¿¡ ÀúÀå ½Ãų »ÓÀÌ´Ù. )

    str = str_return            
    ' for ¹®ÀÌ ³¡³­µÚ¿¡ ±× °ªÀ» ÀúÀåÇÑ´Ù   (À̰ÍÀº call by referance À̱⶧¹®¿¡ °¡´ÉÇÏ´Ù.)

 

¾Æ¸¶µµ ÀÌ ÇÔ¼ö´Â ÇÁ·Î±×·¥ °æ·ÂÀÌ ÀÖÀ¸½ÅºÐµéÀº ±×¸® ¾î·ÆÁö ¾Ê°Ô ½º½º·Î ¸¸µå½Ç¼ö ÀÖÀ»²¨¶ó´Â »ý°¢À̵ì´Ï´Ù.  ÀÌ ¿ø¸®¸¦ ÀÌ¿ëÇϸé Trim (°ø¹é¹®ÀÚ Á¦°Å ) ÇÔ¼ö´Â ½±°Ô ¸¸µé¼ö ÀÖ½À´Ï´Ù. . (À̰ÍÀº ¿©·¯ºÐ ½º½º·Î Çѹø ÇØºÃÀ¸¸é ÁÁ°Ú ½À´Ï´Ù. )

À̹ø¿¡´Â ¹®ÀÚ¿­ Á¤·Ä¿¡ °üÇØ¼­ ¾Ë¾Æ º¸°Ú½À´Ï´Ù.

 

2. bubble sort

Á¤·Ä¾Ë°í¸®ÁòÀº Á¤¸» ¹«¼öÈ÷ ¸¹½À´Ï´Ù. ÇÊÀÚ°¡ ¾Ë°í ÀÖ´Â Á¤·Ä¾Ë°í¸®Áò¸¸Çصµ 8°³ °¡±îÀÌ µÇ°í ÇöÀçµµ Á¤·Ä ¾Ë°í¸®ÁòÀº ¿¬±¸ µÇ°í ÀÖ°í »õ·Ó°í ¼º´ÉÁÁÀº Á¤·Ä ¾Ë°í¸®ÁòÀ» °³¹ßÇÑ´Ù¸éÀ̰ÍÀº  ³í¹®°¨ÀÔ´Ï´Ù :-) ±×¸¸Å­ ¸¹Àº »ç¶÷µéÀÌ ¿¬±¸Çؿ԰í ÃÖÀûÈ­ µÇ¾î ¿Ô½À´Ï´Ù. ÀÌÁß¿¡¼­ ¿ì¸®´Â °ÅǰÁ¤·Ä(bubble sort) À»  »ç¿ëÇØ¼­ ¹®ÀÚ¿­À» Á¤·ÄÇØº¼ °ÍÀÔ´Ï´Ù.  

ÀÏ´Ü ¹®ÀÚ¿­À» Á¤·ÄÇÑ´Ù ÇÔÀº "bacdfe" ¸¦ ¿À¸§Â÷¼øÀ¸·Î Á¤·ÄÇϸé "abcdef" °¡ µË´Ï´Ù. °Åǰ Á¤·Ä ¾Ë°í¸®ÁòÀÇ ¿ø¸®´Â ÀÎÁ¢ÇÑ ¹è¿­ÀÇ ¿ä¼Ò¸¦ ºñ±³ , ±³È¯ÇÑ´ÙÀ½¿¡ ÀüüÀûÀ¸·Î ´ëÃæ Á¤·ÄÀ» Çϸ鼭  ÃÖ´ë°ªÀ» ¹è¿­ÀÇ Á¦ÀÏ ¸¶Áö¸·À¸·Î º¸³»´Â °ÍÀ» ¹Ýº¹ÇÏ´Ùº¸¸é ¿À¸¥Â÷¼øÀ¸·Î Á¤·ÄÀÌ µË´Ï´Ù.

"fbadce" °¡ ÀÖ´Ù°í Ä¡¸é  ¿ì¼± 

   1.  f ¿Í b ¸¦ ºñ±³ÇÑ´Ù
        b °¡ ¾Õ¿¡ ¿Í¾ß ÇϹǷΠÀÚ¸®¸¦ ¹Ù²Û´Ù. 
        ±×·¸°Ô µÇ¸é  "bfadce" °¡ µÉ°ÍÀÌ´Ù 
        ´Ù½Ã f ¿Í a¸¦ ºñ±³ÇÑ´Ù 
        a °¡ ¾Õ¿¡ ÀÖ¾î¾ß ÇϹǷΠÀÚ¸®¸¦ ¹Ù²Û´Ù. 
        ±×·¸°Ô µÇ¸é "bafdce" °¡ µÈ´Ù. 
        ´Ù½Ã f ¿Í d¸¦ ºñ±³ÇÑ´Ù 
        d °¡ ¾Õ¿¡ ÀÖ¾î¾ß ÇϹǷΠÀÚ¸®¸¦ ¹Ù²Û´Ù. 
        "badfce" °¡ µÇ°í ÀÌ·¸°Ô µÇ¸é¼­ °á±¹ f´Â Á¦ÀÏ µÚ·Î °¡°ÔµÇ¸é¼­ 
        "badcef" ÀÇ ÇüŰ¡ µÉ°ÍÀÌ´Ù.   
        f°¡ Á¦ÀÏ µÚ·Î º¸³»Áö°Ô µÇ¸é

   2.  óÀ½À¸·Î µ¹¾Æ°¡¼­ b ¿Í a¸¦ ¹Ù²Û´Ù. 
        ±×·³   "abdcef " °¡ µÈ´Ù. 
        ´ÙÀ½¿¡ b d ¸¦ ºñ±³ÇÑ´Ù. 
        d °¡ ´õ Å©¹Ç·Î ±³È¯ÇÒÇʿ䰡 ¾ø´Ù 
        ±³È¯ÇÒÇʿ䰡 ¾ø¾îÁö¸é¼­  d È­ c¸¦ ºñ±³ÇÑ´Ù  
        (óÀ½¿¡ ¸»ÇßµíÀÌ  ÀÚ¸®¸¦ ¿Å±â¸é¼­ ¿·ÀÚ¸®ÇÏ°í¸¸ ºñ±³¸¦ ÇÕ´Ï´Ù. ) 
        c°¡ ´õ ÀÛÀ¸¹Ç·Î ±³È¯ÇؾßÇÑ´Ù. "abcdef" 
        ±×´ÙÀ½¿¡´Â  d ¿Í e¸¦ ºñ±³ ÇÑ´Ù. 
        (óÀ½¿¡ ¸ÇµÚ·Î°£ f¿Í´Â ºñ±³ ÇÏÁö ¾Ê´Â´Ù.!)
        À̰ÍÀÌ bubble sort ÀÇ ±âº» Á¤·Ä ¹æ¹ýÀÌ´Ù. 
        °á±¹ "abcdef" °¡ µÇ°í  Á¦ÀÏ Å«¹®ÀÚ¸¦ µÚ·Î º¸³»°¡¸é¼­ Áß°£Áß°£ Á¤·ÄÀ» ÇØ³ª°¡°í ÀÖ´Ù.

    3. ÀÌ¹Ì "abcdef" ·Î Á¤·ÄÀº ´Ù µÇ¾úÁö¸¸ °è¼Ó ÇØ³ª°£´Ù¸é 
        ´Ù½Ã a ¿Í b¸¦ ºñ±³Çϰí d±îÁö¸¸ ºñ±³ ÇÑ´Ù (¸ÇµÚ·Îº¸³½ e, f ´Â ºñ±³ ÇÏÁö ¾Ê´Â´Ù. )

ÀÌ ¹öºí ¼ÒÆ®´Â  ºñ±³Àû ¾î´ÀÁ¤µµ Á¤·ÄÀÌ µÇÀÖ´Â ¹®ÀÚ¸¦ Á¤·ÄÇÒ¶§ ±²ÀåÈ÷ ºü¸¥ ¼Óµµ¸¦ ÀÚ¶ûÇÏÁö¸¸ ¿ª¼øÀ¸·Î Á¤·ÄµÇÀÖ´Â ¹®ÀÚ¸¦  Á¤·ÄÇÒ¶§´Â ºñ±³Àû ´À¸³´Ï´Ù. ÀÌÀ¯´Â °£´ÜÇÕ´Ï´Ù  ¾ÕµÚ ÀÚ¸®¸¦ °è¼Ó ¹Ù²ãÁà¾ß Çϱ⠶§¹®ÀÌÁö¿ä.

À̰ÍÀ» asp ·Î ³ªÅ¸³» º¸¸é..

<% 
   strstring = "aslkjasdghglasdjfjfqhwejfasjdflkasfkhasdkjfals"  ' Á¤·ÄÇÒ ¹®ÀÚ¿­
   Call bubble_sort(strstring)   ' ÇÔ¼ö È£Ãâ 
   Response.write strstring

   Sub bubble_sort(str_string)  'ÇÔ¼ö ¼±¾ðºÎ ¹®ÀÚ¿­ÀÌ µé¾î¿Â´Ù. 
       Dim i, j                           ' º¯¼ö ¼±¾ð 
       Dim str_temp()               
       ' ¹Ýµå½Ã ¹è¿­·Î ÇÒÇÊ¿ä´Â ¾øÁö¸¸ ¹è¿­¿¡ ¹®ÀÚ¿­À» Çϳª¾¿ ÀúÀåÇØ µÎ´Â °ÍÀÌ ÆíÇÏ´Ù.

       str_length = Len(str_string)    '¹®ÀÚ¿­ÀÇ ±æÀ̸¦ ¹Ì¸® ÀúÀå ÇØµÐ´Ù (¼Óµµ Çâ»óÀ» À§Çؼ­ÀÓ.) 
       ReDim str_temp(str_length)     ' ¹®ÀÚ¿­ÀÇ ±æÀ̸¸Å­ ¹è¿­À» Àç¼±¾ð        

       For i = 1 To str_length          ' ¹®ÀÚ¿­ÀÇ ±æÀÌ ¸¸Å­ ¹Ýº¹¹®À» µ·´Ù. 
           str_temp(i) = Mid(str_string, i, 1)  ' ¹®ÀÚ¿­À» ¹è¿­¿¡ ÇѱÛÀÚ¾¿ ³Ö¾îÁÖ°í ÀÖ´Ù. 
      Next 

      For i =  0   To str_length        
      ' ¿©±â¼­ ºÎÅͰ¡ ¹öºí ¼ÒÆ® ÀÌ´Ù.  ¹®ÀÚ¿­ÀÇ ±æÀ̸¸Å­ ´Ù½Ã ¹Ýº¹¹®À» µ·´Ù. 
          For j = 1   To str_length - i      ' 2Áß ¹Ýº¹¹®ÀÌ´Ù. 
          'str_length - i ÀÇ À̴̹ Á¦ÀÏ ¸¶Áö¸·¿¡ ÀÖ´Â Á¦ÀÏ Å«¹®ÀÚ´Â ´Ù½Ã ºñ±³ÇÒ Çʿ䰡 ¾ø¾î¼­ÀÌ´Ù.

               If str_temp(j - 1) > str_temp(j) Then     ' "a" ¿Í "s" ¸¦ ºñ±³ ÇØ¼­ 
                    t = str_temp(j - 1)                          ' "s"°¡ Å©¸é Àӽà º¯¼ö¿¡ ÀúÀåÇØ³õ°í
                    str_temp(j - 1) = str_temp(j)           'ÀÚ¸®¸¦ ¼­·Î ¹Ù²Û´Ù. 
                    str_temp(j) = t
               End If

          Next
      Next

      str_string = ""
      ' ¹Ýº¹¹®Àº ¸ðµÎ ³¡³µ´Ù °ªÀ» µÇµ¹·ÁÁÖ±â À§ÇØ ±×Àü¿¡ Á¤·Ä ¾ÈµÈ ¹®ÀÚ¿­À» ¸ðµÎ Áö¿î´Ù.

      For i = 1 To str_length        'À̺κÐÀº str_string ¿¡ Á¤·ÄµÈ ¹®ÀÚ¿­À» 
          str_string = str_string + str_temp(i)
          '³Ö¾îÁÖ´Â °úÁ¤ÀÌ´Ù.  str_string ¿¡´Â Á¤·ÄµÈ ¹®ÀÚ°¡ µé¾î°¡°Ô µÈ´Ù. 
      Next

End Sub 
%>

Áö±Ý ÀÌ ÇÔ¼ö´Â À̱ÛÀ» ¾²¸é¼­ ¹Ù·Î¹Ù·Î ¸¸µé°í Àִ°ÍÀε¥ ¹º°¡ ÃÖÀûÈ­ µÇÁö´Â ¾ÊÀº´À³¦ÀÔ´Ï´Ù. ¹öºí¼ÒÆ®ÀÇ ÀåÁ¡Àº  Áß°£¿¡ Á¤·ÄÀÌ ´ÙµÇ¾úÀ¸¸é ³¡±îÁö ºñ±³ ÇÏÁö ¾Ê°í Áß°£¿¡ ¸ØÃâ ¼ö ÀÖ½À´Ï´Ù.  À̰ÍÀ» ¼Ò½º¿¡ ³ÖÀ¸¸é ³Ê¹« º¹ÀâÇØ º¸À̱⠶§¹®¿¡  ¼Ò½º¿¡¼­ »°À¸¸ç Áß°£¿¡ ¸ØÃâ ¼ö ÀÖ´Â °ÍÀº ¹öºí¼ÒÆ®ÀÇ ÀåÁ¡ÀÔ´Ï´Ù.  ¿©·¯ºÐÀÌ  Á÷Á¢ Çѹø ÇØº¸½Ã±â ¹Ù¶ø´Ï´Ù (ÈùÆ® : ¹®ÀÚ¿­À» ºñ±³ÇÏ´Ù ±³È¯ÀÌ ÀϾÁö ¾ÊÀ¸¸é  ¹®ÀÚ¿­Àº Á¤·ÄµÈ»óÅ ÀÌ´Ù. ±³È¯ÀÌ ÀÏ¾î ³ªÁö ¾ÊÀ» ¶§ for ¹®À» ºüÁ®³ª¿À¸é µÈ´Ù. )

¹º°¡ º¹ÀâÇØ º¸À̱äÇÏÁö¸¸ ½ÇÁ¦·Î ¿©·¯ºÐÀÌ ¸¸µé¾î °¡¸é¼­ ¼Ò½º¸¦ º¸¸é ±×¸® ¾î·ÆÁöµµ ¾Ê½À´Ï´Ù.. Á¦ÀÏ À­ºÎºÐÀÇ ¹Ýº¹¹®°ú ¾Æ·¡ºÎºÐÀÇ ¹Ýº¹¹®Àº »ç½Ç Áß¿äÇÏÁö ¾Ê°í Áß¿äÇÑ ºÎºÐÀº 

For i =  0   To str_length        
' ¿©±â¼­ ºÎÅͰ¡ ¹öºí ¼ÒÆ® ÀÌ´Ù.  ¹®ÀÚ¿­ÀÇ ±æÀ̸¸Å­ ´Ù½Ã ¹Ýº¹¹®À» µ·´Ù. 
    For j = 1   To str_length - i      ' 2Áß ¹Ýº¹¹®ÀÌ´Ù. 
    'str_length - i ÀÇ À̴̹ Á¦ÀÏ ¸¶Áö¸·¿¡ ÀÖ´Â Á¦ÀÏ Å«¹®ÀÚ´Â ´Ù½Ã ºñ±³ÇÒ Çʿ䰡 ¾ø¾î¼­ÀÌ´Ù.

         If str_temp(j - 1) > str_temp(j) Then     ' "a" ¿Í "s" ¸¦ ºñ±³ ÇØ¼­ 
              t = str_temp(j - 1)                          ' "s"°¡ Å©¸é Àӽà º¯¼ö¿¡ ÀúÀåÇØ³õ°í
              str_temp(j - 1) = str_temp(j)           'ÀÚ¸®¸¦ ¼­·Î ¹Ù²Û´Ù. 
              str_temp(j) = t
         End If

    Next
Next

À̺κÐÀÔ´Ï´Ù. ¿©±â¼­ ¾î¶² ºÐµéÀº ¿Ö 2Áß for ¹®À¸·Î ÇÏ³Ä°í ¹°¾î º¸½Ã´Â ºÐµéµµ ÀÖÀ»ÅÙµ¥.. "54321 " À̶ó´Â ¹®ÀÚ°¡ ÀÖÀ» ¶§  ¹Ýº¹¹®À» Çѹø¸¸ µ¹¸®°Ô µÇ¸é "43215"¿¡¼­ ³¡³ª ¹ö¸³´Ï´Ù. ´Ù½Ã óÀ½À¸·Î µ¹¾Æ°¡¾ß Çϱ⠶§¹®¿¡ 2Áß for ¹®À» ½á¾ßÇÕ´Ï´Ù.

»ç½Ç ¸Ó¸®°¡ ÁÁÀº »ç¶÷µéÀº À̺κРÁ¤µµ´Â ¸Ó¸®·Î µû¶ó°¡¸é¼­ °á°ú °ªÀ» ¿¹ÃøÇϰï ÇÏÁö¸¸   Çѹø¾¿ ÇØº¸¸é¼­ ÀÌÇØÇÏ½Ã±æ ºÎŹ µå¸³´Ï´Ù. °¡Àå Áß¿äÇÑ °ÍÀº ¹öºí¼ÒÆ®´Â µÞºÎºÐ ºÎÅÍ Á¤·ÄÀÌ µÇ¸ç ¾ÕµÚ°ªÀ» ºñ±³ ÇØ¼­ ÀÚ¸®¹Ù²ÞÀ» ÇѴٴ°ÍÀÔ´Ï´Ù. ÀÌÇØ°¡ µÅ¼Ì´ÂÁö Àß ¸ð¸£°Ú½À´Ï´Ù  . T.T

Ȥ½Ã¶óµµ Áú¹®ÀÖÀ¸½Å ºÐÀº ¸ÞÀÏ ÁÖ¼¼¿±...~~ caelin@dreamwiz.com

 

Back