¼±Åùý¿¡ µû¸£´Â ¼ÒÆ®


ÇÔ¼ö¸í
selectSort  ¼±Åùý¿¡ µû¸£´Â ¼ÒÆ®
Çü½Ä
void selectSort(DATA *data, int nmem, int asdes);
Àμö
typedef struct {
    int key;        /* ºñ±³ÀÇ Å°°¡ µÇ´Â Çʵå */
    int info;       /* ±× ¿ÜÀÇ Çʵå */
} DATA;

data   (ÀÔÃâ·Â) µ¥ÀÌÅÍ ·¹ÄÚµåÀÇ ¹è¿­
nmem   (ÀÔ·Â) ·¹ÄÚµå ¹è¿­ÀÇ Å©±â
asdes  (ÀÔ·Â) ½Â¼ø¡¤³»¸²Â÷¼øº°,0:½Â¼ø, 1:³»¸²Â÷¼ø
ÇÔ¼öÄ¡
¾øÀ½
ÁÖÀÇ »çÇ×

¿ë·Ê(selectSort-test.c )

ÇÁ·Î±×·¥(selectSort.c )
void selectSort(DATA *data, int nmem, int asdes){
    int i, j, k;
    static void swap();

    for (i = 0; i < nmem - 1; i++) {
        k = i;
        for (j = i + 1; j < nmem; j++)
            if (asdes == 0) {
                if (data[j]. key < data[k]. key) k = j;
            } else {
                if (data[j]. key > data[k]. key) k = j;
            }
        if (k ! = i) 
swap(&data[k], &data[i]); } } static void swap(DATA *a, DATA *b){ DATA t; t.key = a->key; t.info = a->info; a->key = b->key; a->info = b->info; b->key = t.key; b->info = t.info; }
¼³¸í
¼±Åà ¼ÒÆ®¿¡¼­´Â, ¿ì¼± Àüü¸¦ ÁÖ»ç ÇØ ÃÖ¼ÒÀÇ ·¹ÄÚµå(½Â¼øÀÇ °æ¿ì) (À»)¸¦ ã¾Æ³» ±×°ÍÀ» ÃÖÃÊÀÇ ·¹ÄÚµå¿Í ¹Ù²ã ³Ö´Â´Ù. ´ÙÀ½¿¡ 2¹ø°ÀÇ ·¹ÄÚµå (À¸)·ÎºÎÅÍ ³¡±îÁö ÁÖ»ç ÇØ ±× ÁßÀÇ ÃÖ¼ÒÀÇ °ÍÀ» ã¾Æ³» 2¹ø°ÀÇ ·¹ÄÚµå¿Í ¹Ù²ã ³Ö´Â´Ù. ÀÌ¿Í °°ÀÌ ¸¶Áö¸· ·¹ÄÚµå±îÁö ¹Ýº¹ÇØ Á¾·áÇÑ´Ù.

ÀÌ¿ëÇÏ·Á¸é , µ¥ÀÌÅÍ ±¸Á¶¸¦ ½ÇÁ¦ÀÇ ¹®Á¦¿¡ ¸ÂÃß¾î ¼öÁ¤ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.

°ü·Ã ÇÔ¼ö
»ðÀÔ ¼ÒÆ®, ¹öºí ¼ÒÆ®, ½© ¼ÒÆ®, Äü ¼ÒÆ®