20-2-³ª.¼±Åà Á¤·Ä

°¡Àå ´Ü¼øÇÑ Á¤·Ä ¹æ¹ýÀÎ ¼±Åà Á¤·ÄÀº ÃÖ¼Ò°ªÀ» ã¾Æ ¾ÕÂÊÀ¸·Î À̵¿Çϱ⸦ ¹è¿­ Å©±â¸¸Å­ ¹Ýº¹ÇÏ´Â Á¤·Ä ¹æ¹ýÀÌ´Ù. ¹è¿­¿¡¼­ Á¦ÀÏ ÀÛÀº °ªÀ» ã¾Æ óÀ½À¸·Î ÀÏ´Ü º¸³½´Ù. ±×¸®°í ù ¹ø° ¿ä¼Ò´Â Á¦¿ÜÇÏ°í ³²Àº ¿ä¼Òµé Áß Á¦ÀÏ ÀÛÀº °ªÀ» ´Ù½Ã ã¾Æ ¼±µÎ·Î º¸³»±â¸¦ ¹è¿­ ³¡±îÁö ¹Ýº¹ÇÑ´Ù. ÀÛÀº ¼ø¼­´ë·Î °è¼Ó ¾ÕÂÊÀ¸·Î À̵¿ÇϹǷΠ·çÇÁ°¡ ³¡³ª¸é ¸ðµç ¿ä¼Ò´Â ¼ø¼­´ë·Î Á¤·ÄµÈ´Ù.

¼±Åà Á¤·ÄÀº »ç¶÷ÀÌ Á¤·ÄÀ» ÇÏ´Â »ó½ÄÀûÀÎ ¹æ¹ý°ú ÀÏÄ¡ÇÏ´Â ½¬¿î ¾Ë°í¸®ÁòÀÌ´Ù. ¼±»ý´ÔÀÌ ÇлýµéÀ» Å°¼øÀ¸·Î Á¤·ÄÇÒ ¶§ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ ¹Ù·Î ¼±Åà Á¤·ÄÀÌ´Ù. ¼±»ý´ÔÀº ¹«ÀÛÀ§·Î ´Ã¾î¼± Çлýµé Áß °¡Àå ÀÛÀº ÇлýÀ» °ñ¶ó ÀÌ ÇлýÀ» Á٠óÀ½¿¡ ¼¼¿î´Ù. ±×¸®°í ³²Àº Çлýµé Áß Á¦ÀÏ ÀÛÀº ÇлýÀ» ã¾Æ ±× µÚ¿¡ ¼¼¿ì±â¸¦ ¸ðµç Çлý¿¡ ´ëÇØ ¹Ýº¹ÇÏ´Â °ÍÀÌ´Ù. ¿¹Á¦¸¦ º¸ÀÚ.

 

¿¹ Á¦ : SelectionSort

#include <Turboc.h>

 

#define SWAP(a,b) { int t;t=a;a=b;b=t; }

void SelectionSort(char *ar, int num)

{

     int minidx;

     int i,j;

 

     // ¹è¿­ Àüü ¼øȸ.

     for (i=0;i<num-1;i++) {

          // iÀÌÈÄÀÇ ÃÖ¼Ò°ªÀ» ã´Â´Ù.

          for (minidx=i,j=i+1;j<num;j++) {

              if (ar[minidx] > ar[j]) {

                   minidx=j;

              }

          }

          // ÃÖ¼Ò°ªÀ» ÇöÀçÇ×°ú ±³È¯.

          if (minidx != i) {

              SWAP(ar[minidx],ar[i]);

          }

     }

}

 

void main()

{

     char str[]="winapi";

 

     printf("Á¤·Ä ÀüÀÇ ¹®ÀÚ¿­ : %s\n",str);

     SelectionSort(str,strlen(str));

     printf("Á¤·ÄµÈ ¹®ÀÚ¿­ : %s\n",str);

}

 

¹öºí Á¤·Ä°ú ¶È°°Àº ¹®ÀÚ¿­À» »ç¿ëÇßÀ¸¹Ç·Î ½ÇÇà °á°úµµ µ¿ÀÏÇÏ´Ù. ¿ª½Ã ÀÌÁß ·çÇÁ·Î ±¸¼ºµÇ¾î Àִµ¥ ¼±Åà Á¤·ÄÀÇ ´Ü°èº° µ¿ÀÛÀ» ±×¸²À¸·Î ±×·Á º¸¸é ´ÙÀ½°ú °°´Ù.

i°¡ 0ÀÏ ¶§ j´Â iÀÇ ´ÙÀ½ À§Ä¡¿¡¼­ºÎÅÍ ¹è¿­ÀÇ ³¡±îÁö ¼øȸÇϸ鼭 °¡Àå ÀÛÀº °ªÀ» °¡Áö´Â ¿ä¼ÒÀÇ Ã·ÀÚ¸¦ minidx¿¡ ¼±ÅÃÇϴµ¥ ù ¹ø° ±×¸²¿¡¼­ °¡Àå ÀÛÀº °ªÀº aÀÌ´Ù. ÀÌ·¸°Ô ¼±ÅÃµÈ a¿Í ù ¹ø° ¿ä¼Ò wÀÇ °ªÀ» ±³È¯Çϸé a´Â ÀÌ¹Ì Á¦ À§Ä¡¸¦ ã¾Ò´Ù. iÀÇ ´ÙÀ½ ·çÇÁ¿¡¼­´Â 1¹ø° ÀÚ¸®¿¡ À§Ä¡½Ãų °¡Àå ÀÛÀº °ªÀ» ´Ù½Ã ¼±ÅÃÇϴµ¥ À̶§´Â 1¹ø° ÀÚ¸®¿¡ ÀÌ¹Ì ¹èÄ¡µÇ¾î ÀÖ´Â iº¸´Ù ´õ ÀÛÀº °ªÀÌ ¾øÀ¸¹Ç·Î ±³È¯ÀÌ ¹ß»ýÇÏÁö ¾Ê´Â´Ù.

´ÙÀ½ i ·çÇÁ¿¡¼­ ±× ´ÙÀ½ ÀÛÀº °ª i¸¦ n°ú ±³È¯ÇÏ°í ´ÙÀ½ ·çÇÁ¿¡¼­ w¿Í nÀÌ ±³È¯µÈ´Ù. ¸¶Áö¸· ³²Àº w´Â ´õ ÀÌ»ó ±³È¯ÇÒ ´ë»óÀÌ ¾øÀ¸¹Ç·Î ÀÌ ½ÃÁ¡¿¡¼­ Á¤·ÄÀ» Á¾·áÇÑ´Ù. ÀÌ·± ½ÄÀ¸·Î ·çÇÁ¸¦ ³¡±îÁö µ¹¸é ÀÛÀº °ªµéÀÌ ¼ø¼­´ë·Î ¾ÕÂÊÀ¸·Î À̵¿Çϸ鼭 Á¤·ÄµÈ´Ù. µÚÂÊÀÇ ¹ÌÁ¤·ÄµÈ ·¹Äڵ忡¼­ °¡Àå ÀÛÀº °ªÀ» ¼±ÅÃÇؼ­ ¾ÕÂÊÀ¸·Î À̵¿½ÃÅ°±â ¶§¹®¿¡ ¼±Åà Á¤·ÄÀ̶ó°í ÇÑ´Ù. ·çÇÁ¸¦ °Å²Ù·Î µ¹¸é¼­ Å« °ªÀ» ã¾Æ µÚÂÊÀ¸·Î º¸³»´Â ¹æ¹ýÀ» ½áµµ µ¿ÀÏÇÏ´Ù.

¼±Åà Á¤·ÄÀº ÀÛÀº °ªÀ» ¼±ÅÃÇϱâ À§ÇØ ºñ±³¸¦ ¿©·¯ ¹ø ÇÏÁö¸¸ ±³È¯ ȸ¼ö°¡ ÀÛÀº °ÍÀÌ ÀåÁ¡ÀÌ´Ù. ÃÖ¾ÇÀÇ °æ¿ì¶ó°í ÇÏ´õ¶óµµ ·¹ÄÚµåÀÇ °³¼ö¸¸Å­¸¸ ±³È¯ÀÌ ¹ß»ýÇϹǷΠ±³È¯ ºñ¿ëÀÌ ºñ½Ñ ±¸Á¶Ã¼ ¹è¿­ µî¿¡ ÀûÇÕÇÏ´Ù. ¼±Åà Á¤·ÄÀº °¡Àå ÀÛÀº°ª°ú ÇöÀç°ªÀ» ±³È¯ÇÏ´Â ¹æ½ÄÀ̶ó ÇöÀç°ªÀÌ µÚÂÊÀÇ ¾îµð·Î °¥ Áö ¾Ë¼ö ¾øÀ¸¹Ç·Î ¾ÈÁ¤¼ºÀº ¾ø´Ù.