¹öºí¹ý¿¡ µû¸£´Â ¼ÒÆ®


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

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

¿ë·Ê(bubbleSort-test.c )

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

    for (i = 0; i < nmem - 1; i++) {
        for (j = nmem - 1; j >= i + 1; j--)
            if (asdes == 0) {
                if (data[j]. key < data[j-1]. key)
                    swap(&data[j], &data[j-1]);
            } else {
                if (data[j]. key > data[j-1]. key)
                    swap(&data[j], &data[j-1]);
            }
    }
}
 
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°³(»ì)À» ¹Ù²ã ³Ö´Â´Ù. ÀÌ ÁÖ»ç·Î, Á¦ÀÏÄ¡ÀÇ ÀÛÀº(°¡º±´Ù) ·¹ÄÚµå ÇÏÁö¸¸ 1¹ø»ó¿¡ ºÎ»óÇÑ´Ù. ´ÙÀ½¿¡ ¾Æ·¡¿¡¼­ »ó2¹ø°ÀÇ ·¹ÄÚµå±îÁö ÁÖ»ç ÇØ ÀÌ¿ô³¢¸®¸¦ ÇÊ¿ä¿¡ µû¶ó¼­ ¹Ù²ã ³Ö´Â °ÍÀ¸·Î, ±× ÁßÀÇ ÃÖ¼ÒÀÇ °ÍÀÌ À§·ÎºÎÅÍ 2¹ø°ÀÇ ·¹Äڵ忡 ºÎ»óÇÑ´Ù. ÀÌ¿Í °°ÀÌ ¸¶Áö¸· ·¹ÄÚµå±îÁö ¹Ýº¹ÇØ Á¾·áÇÑ´Ù.

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

°ü·Ã ÇÔ¼ö
»ðÀÔ ¼ÒÆ®, ¼±Åà ¼ÒÆ®, ½© ¼ÒÆ®, Äü ¼ÒÆ®