Á¤·Ä¾Ë°í¸®Áò : Selection Sort
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Selection sort ´Â in-place comparison sort ·Î ±¸ÇöµÇ´Â Á¤·Ä¾Ë°í¸®ÁòÀÌ´Ù. ÀÌ ¾Ë°í¸®ÁòÀº O(n2)ÀÇ º¹Àâµµ¸¦ °¡Áø´Ù. µ¥ÀÌÅÍÀÇ ¾çÀÌ ¸¹À» °æ¿ì ºñÈ¿À²ÀûÀÎ ¾Ë°í¸®ÁòÀÌ´Ù. bubble sort°¡ µ¿ÀÏÇÑ º¹Àâµµ¸¦ º¸¿©ÁØ´Ù. °¡Àå Å« (ȤÀº °¡Àå ÀÛÀº) °ªÀ» ¼±Åà (selection)ÇØ¼­ ġȯÇÏ´Â °úÁ¤À» °ÅÄ¡±â ¶§¹®¿¡, SelectionÀ̶ó´Â À̸§ÀÌ ºÙ¾ú´Ù.

ÀÌ ¾Ë°í¸®ÁòÀº ´ÙÀ½°ú °°ÀÌ ÀÛµ¿ÇÑ´Ù.
  1. ¸®½ºÆ®¿¡¼­ °¡Àå ÀÛÀº °ªÀ» ã´Â´Ù.
  2. ã¾Æ³½ °¡Àå ÀÛÀº °ªÀ» ù¹øÂ° À§Ä¡¿¡ º¹»çÇÑ´Ù.
  3. ³²¾Æ ÀÖ´Â ¸®½ºÆ®¿¡¼­ À§ÀÇ 1,2 °úÁ¤À» µÇÇ®ÀÌ ÇÑ´Ù. (½ÃÀÛ À§Ä¡°¡ 1¸¸Å­ Áõ°¡ÇÒ °ÍÀÌ´Ù)

´ÙÀ½ visual sort ÇÁ·Î±×·¥À» ÀÌ¿ëÇϸé, À§ÀÇ °úÁ¤À» ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¾Æ·¡ÀÇ °æ¿ì °¡Àå Å« °ªÀ» ±âÁØÀ¸·Î Á¤·ÄÇϰí ÀÖ´Ù.


°úÁ¤ÀÌ ´Ü¼øÇÑ ¸¸Å­, ¸Å¿ì ½±°Ô ÄÚµå·Î ±¸Çö°¡´É ÇÏ´Ù.

#include <stdio.h> 
 
void selection(int *list, int len) 
{ 
  int i = 0; 
  int j = 0; 
  int idx = 0; 
  int min = 1000; 
 
  for (i = 0; i < len ; i++) 
  { 
    min = 1000; 
    for (j = i; j < len; j++) 
    { 
      if (list[j]< min) 
      { 
        min = list[j]; 
        idx = j; 
      } 
    } 
    // swap 
    min = list[idx]; 
    list[idx] = list[i]; 
    list[i] = min; 
  } 
 
} 
int main(int argc, char **argv) 
{ 
  int i = 0; 
  int data[] = {5, 8, 1, 9, 3, 4, 7, 2, 6, 0}; 
  int len; 
  len = sizeof(data)/sizeof(int); 
  selection(data, len); 
  for (i =0; i < len; i++) 
  { 
    printf("%d\n", data[i]); 
  } 
} 
 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.