::: Zany's Homepage ::: Zany Wiki | »çÀÌÆ® ÅëÇÕ °Ë»ö
 
 
 

[C] Shell Sort ÀÇ ¿ø¸®¿Í ±¸Çö

°Ô½ÃÆÇ
C/C++ Basics
ÀÛ¼ºÀÚ
helix
ÀÛ¼ºÀÏ
2007-04-19 00:34:25
ÀÐÀº¼ö
3928
ÆòÁ¡
   
Ç¥½Ã¿É¼Ç
HTML»ç¿ë | ÀÚµ¿BRűנ| °ø¹é¹®ÀÚÇã¿ë | °¡¿îµ¥Á¤·Ä | °íÁ¤Æø±Û²Ã | ÀÚµ¿URL¸µÅ© | ¸¶¿ì½º¼±ÅÃ
1. ¿ø ¸®

ÁÖ¾îÁø ÀÔ·Â ¸®½ºÆ®¸¦ Àû´çÇÑ ¸Å°³ º¯¼öÀÇ °ª¸¸Å­ ¼­·Î ¶³¾îÁø ·¹ÄÚµåµé°ú ºñ±³ÇÏ¿© ±³È¯ÇÏ´Â °úÁ¤À»
¸Å°³ º¯¼ö °ªÀ» ¹Ù²Ù¾î°¡¸ç µÇÇ®ÀÌ ÇÏ´Â °Í. ÀÌ ¶§ ¼­·Î ¶³¾îÁ® ÀÖ´Â ·¹ÄÚµåµéÀº ÇϳªÀÇ ºÎºÐ ¸®½ºÆ®¸¦
±¸¼ºÇϸç À̵éÀº ´Ù¸¥ Á¤·Ä ¹æ¹ý(º¸Åë »ðÀÔ Á¤·Ä)¿¡ ÀÇÇØ °³º°ÀûÀ¸·Î Á¤·ÄµÈ´Ù.

¸Å°³º¯¼öÀÇ °ªÀº ÈçÈ÷ ÁõºÐ(increment)À̶ó°í ºÎ¸£´Âµ¥ ¸ÕÀú ÀûÀýÇÑ °ªÀ» ¼±ÅÃÇÑ ÈÄ¿¡ Á¡Â÷ °¨¼Ò½ÃÄÑ
°¡¸é¼­ ¼Ð Á¤·ÄÀ» ¼öÇàÇÏ°í ¸Å°³ º¯¼öÀÇ °ªÀÌ 1 ÀÌ µÉ ¶§ Á¾·áÇÑ´Ù.


[¿¹Á¦] inc = 8 ÀÌ°í ÀÔ·Â ·¹Äڵ带 (8,3,5,6,2,1,7,4)¶ó°í ÇÒ ¶§ ¼Ð Á¤·ÄÀ» ¼öÇàÇÑ °úÁ¤ ¹× °á°ú.

    Ãʱ⠻óÅ   :   8,3,5,6,2,1,7,4
    ÁõºÐ    =   5
            ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤
        ¦£¦¡¦«¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤  ¦¢
    ¦£¦¡¦«¦¡¦«¦¡¦¡¦¡¦¡¦¡¦¤  ¦¢  ¦¢
    ¦¢  ¦¢  ¦¢          ¦¢  ¦¢  ¦¢
    8   3   5   6   2   1   7   4
    
    ºÎºÐ¸®½ºÆ®  :   {8,1}, {3,7}, {5,4}, {6}, {2}  (°¢ ºÎºÐµéÀ» °³º° ºñ±³ÇÏ¿© À§Ä¡¹Ù²Þ ÇÑ´Ù)
    Á¤·Ä ÈÄ     :   1,3,4,6,2,8,7,5
    ÁõºÐ    =   3
            ¦£¦¡¦¡¦¡¦¡¦¡¦¤
        ¦£¦¡¦«¦¡¦¡¦¡¦¨¦¡¦«¦¡¦¡¦¡¦¤
    ¦£¦¡¦«¦¡¦«¦¡¦¨¦¡¦«¦¡¦«¦¡¦¤  ¦¢
    ¦¢  ¦¢  ¦¢  ¦¢  ¦¢  ¦¢  ¦¢  ¦¢
    1   3   4   6   2   8   7   5

    ºÎºÐ¸®½ºÆ®  :   {1,6,7}, {3,2,5}, {4,8}  (¿ª½Ã, °¢ ºÎºÐµéÀ» °³º° ºñ±³ Á¤·Ä ÇÑ´Ù)
    Á¤·Ä ÈÄ     :   1,2,4,6,3,8,7,5
    ÁõºÐ    =   1
        
    ¦£¦¡¦¨¦¡¦¨¦¡¦¨¦¡¦¨¦¡¦¨¦¡¦¨¦¡¦¤
    ¦¢  ¦¢  ¦¢  ¦¢  ¦¢  ¦¢  ¦¢  ¦¢
    1   2   4   6   3   8   7   5

    ºÎºÐ¸®½ºÆ®  :   {1,2,4,6,3,8,7,5}
    Á¤·Ä ÈÄ     :   1,2,3,4,5,6,7,8



2. ¼Ð Á¤·ÄÀ» ¼öÇàÇÏ´Â ÇÔ¼ö

#define INFO_LEN    256
#define MAX_REC     256

struct sList {
    int count;
    struct item {
        char info[INFO_LEN] ;
        int key ;
    } rec[MAX_REC] ;
}

    
void Shell_Sort (struct sList *LIST)
{
    int inc, first;

    inc = LIST->count;

    while (inc != 1) {
        inc = inc/3 + 1;
        for (first = 0 ; first < inc ; first++)
            Sort (first, inc, LIST) ;
            /* Sort()ÇÔ¼ö´Â ÀûÀýÇÑ ³»ºÎÁ¤·Ä¹æ¹ý »ç¿ëÇؼ­ Á÷Á¢ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù (´Ü¼øÅ©±âºñ±³) */
    }
}


¡Ø Shell Sort ´Â ÁõºÐ(increment)ÀÇ Å©±â¸¦ ¾î¶»°Ô Àâ´À³Ä¿¡ µû¶ó ½ÇÇà ¼Óµµ¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù.


EOF : 2007-04-19 (Poseidon)

 °Ô½ÃÆÇ ±Û ¸ñ·Ï
No Subject Poster Hits Posted
4166 helix 2678 2013-03-26 16:30:25
4098 helix 3704 2013-02-01 13:43:13
4072 helix 2437 2013-01-21 20:16:22
helix 3928 2007-04-19 00:34:25
708 slipknot 4405 2006-02-04 11:55:45
707 slipknot 3832 2006-02-04 11:55:29
706 slipknot 9300 2006-02-04 11:55:13
705 slipknot 3164 2006-02-04 11:54:54
704 slipknot 5010 2006-02-04 11:54:37
ÄÚ¸àÆ®
ÀÛ¼ºÀÚ
                       
 
zany.kr
  Copyright ¨Ï 2002-2010 Zany's Programming Lab. All Rights Not Reserved.
temporary This Page loads on 0.000 Secs