»ðÀÔ¹ý¿¡ µû¸£´Â ¼ÒÆ®


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

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

¿ë·Ê(insertSort-test.c )

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

    for (i = 1; i < nmem; i++) {
        t.key = data[i]. key;
        t.info = data[i]. info;
        for (j = i - 1; j >= 0; j--)
            if (asdes == 0) {
                if (data[j]. key > t.key) {
                    data[j+1]. key = data[j]. key;
                    data[j+1]. info = data[j]. info;
                } else break;
            } else {
                if (data[j]. key < t.key) {
                    data[j+1]. key = data[j]. key;
                    data[j+1]. info = data[j]. info;
                } else break;
            }
        data[j+1]. key = t.key;
        data[j+1]. info = t.info;
    }
}
¼³¸í
»ðÀÔ ¼ÒÆ®¿¡¼­´Â, ¹ú½á ¼ÒÆ®Á¦ÀÇ ·¹Äڵ忡 »õ·Î¿î ·¹Äڵ带 ¿Ã¹Ù¸¥ Àå¼Ò¿¡ »ðÀÔÇÑ´Ù. Áï, ÃÖÃÊÀÇ 2°³ÀÇ ·¹Äڵ忡 ´ëÇØ ¿ì¼± ÀÔ ´ëü¿¡ ÀÇÇØ ¿Ã¹Ù¸¥ ¼ø¼­·Î ÇÑ´Ù. ´ÙÀ½¿¡, 3¹ø°ÀÇ ·¹Äڵ带 ÀüÀÇ 2°³ÀÇ ·¹ÄÚµå¿Í ºñ±³ÇØ, ÇÊ¿ä¿¡ µû¶ó¼­ ±³Ã¼¸¦ ½Ç½ÃÇÑ´Ù. ÀÌ°ÍÀ¸·Î, 3°³ÀÇ ·¹ Äڵ尡 ¿Ã¹Ù¸¥ ¼ø¼­°¡ µÈ´Ù. ÀÌ¿Í °°ÀÌ ¸¶Áö¸· ·¹ÄÚµå±îÁö ¹Ýº¹ÇÑ´Ù.

»ðÀÔ ¼ÒÆ®´Â Àΰ£ÀÇ ÀÚÁÖ(Àß) ÇÏ´Â ¼ÒÆ®¹ýÀ̸ç, ºê¸´Áö¿¡¼­ Ä«µå¸¦ ´Ã¾î³õ°í ¶§¿¡µµ ÀÚÁÖ(Àß) »ç¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù.

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

°ü·Ã ÇÔ¼ö
¼±Åà ¼ÒÆ®, ¹öºí ¼ÒÆ®, ½© ¼ÒÆ®, Äü ¼ÒÆ®