ÇÁ·Î±×·¡¹Ö

 3206, 5/161 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   ljh7009
   c¾ð¾î »ðÀÔ Á¤·Ä Áß °£Á¢Á¤·Ä Áú¹®µå·Á¿ä

http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&no=6518 [º¹»ç]


ÀüüÀûÀÎ ¼Ò½º´Â

#include <stdio.h>
#include <malloc.h>

void indirect_insert_sort(int a[], int index[], int n)
{
        int i, j;
        int t;

        for(i = 0; i < n; i++)
                index[i] = i;

        for(i = 1; i< n; i++)
        {
                t = index[i];
                j = i;

                while(a[index[j-1]] > a[t] && j > 0)        
                {                                    
                        index[j] = index[j-1];
                        j--;
                }

                index[j] = t;
        }
}

void rearrange(int a[], int index[], int n)
{
        int *p;
        int i;
        p = (int*)malloc(sizeof(int) * n);

        for(i = 0; i < n; i++)
                p[i] = a[index[i]];

        for(i = 0; i < n; i++)
                a[i] = p[i];

        free(p);
}

void print_arr(int a[], int n)
{
        int i;

        for(i = 0; i < n; i++)
                printf("%-5d", a[i]);

        printf("\n");
}

void print_index_arr(int a[], int index[], int n)
{
        int i;

        for(i = 0; i < n; i++)
                printf("%-5d", a[index[i]]);

        printf("\n");
}

int main()
{
        int arr[] = {9, 8, 7, 6, 5, 4, 3, 2, 1};
        int len = sizeof(arr) / sizeof(int);
        int index[sizeof(arr) / sizeof(int)] = {0, };

        printf("ÃʱⰪ\n");
        print_arr(arr, len);
        
        indirect_insert_sort(arr, index, len);

        printf("\n°£Á¢ Á¤·Ä ÈÄ arr °ª\n");
        print_arr(arr, len);

        printf("\n°£Á¢ Á¤·Ä ÈÄ arr[index] °ª\n");
        print_index_arr(arr, index, len);

        rearrange(arr, index, len);

        printf("\n°£Á¢ Á¤·Ä, Àç¹è¿­ ÈÄ arr°ª\n");
        print_arr(arr, len);

        return 0;
}

ÀÌ°ÍÀÔ´Ï´Ù.

ÀÌ Áß¿¡ ÄÄÆÄÀÏ ½Ã indirect_insert_sort ÇÔ¼öÀÇ

while(a[index[j-1]] > a[t] && j > 0) ºÎºÐÀÌ ¿¡·¯°¡ ³³´Ï´Ù.

±Ùµ¥ Á¶°Ç ¼ø¼­¸¦ while(j > 0 && a[index[j-1]] > a[t]) ·Î ¹Ù²Ù¸é

¿¡·¯°¡ ³ªÁö ¾Ê½À´Ï´Ù... ÀÌÀ¯¸¦ ¾Ë·ÁÁÖ½Ç ¼ö ÀÖ³ª¿ä??

  Hit : 4243     Date : 2015/03/19 06:22



    
Prox while(j > 0 && a[index[j-1]] > a[t]) ÀÌ°Ô ¸Â´Â ÄÚµùÀÔ´Ï´Ù.

c¾ð¾îÀÇ &&³ª || ¿¬»êÀÚ´Â °è»ê½Ã¿¡ short-circuit evaluationÀ» ÇÕ´Ï´Ù
½±°Ô¸»Çϸé a&&b ÀÇ °æ¿ì, a°¡ °ÅÁþÀ̸é b¸¦ °è»êÇÏÁö ¾Ê°í ¹Ù·Î false·Î ó¸®Çϴ°̴ϴÙ
±×·¡¼­ j>0°°Àº À妽º °Ë»ç´Â &&ÀÇ ¿ÞÂÊ¿¡ ³Ö¾î¾ßÇÕ´Ï´Ù

while(a[index[j-1]] > a[t] && j > 0) °°Àº°æ¿ì¿¡´Â...
j=0À϶§ ¸ÕÀú index[j-1]=index[-1]ÀÇ °ªÀ» Àоî¿À°ÚÁÒ? ¾Æ¸¶ -123456°°Àº dummy°ªÀÌ ÀÐÈ÷°ÚÁÒ
±×¸®°í ´Ù½Ã a[-123456] ó·³ Á¢±ÙÇϸé... ¸Å¿ì ³ôÀº È®·ü·Î access violationÀÌ ¹ß»ýÇÒ °Ì´Ï´Ù
2015/03/20  
3126   Çб³ ÇÁ·ÎÁ§Æ® Áú¹®ÀÔ´Ï´Ù.     rlagusgh125
03/29 2905
3125   Àç±ÍÈ£Ãâ ¼Ò½ºÄÚµå ºÐ¼®.....     h@cking2013
03/24 3390
3124   ¾È³çÇϼ¼¿ä c++¹è¿ì´Â ÇлýÀÔ´Ï´Ù[3]     axio93
03/19 3830
  c¾ð¾î »ðÀÔ Á¤·Ä Áß °£Á¢Á¤·Ä Áú¹®µå·Á¿ä[1]     ljh7009
03/19 4242
3122   ÇÁ·Î±×·¡¹Ö ÀÔ¹®ÀÚ °øºÎ ¹æÇâ..[1]     mwm0202
03/19 3058
3121   ÆÄÀ̽ã Ã¥ Ãßõ ºÎŹµå¸³´Ï´Ù[1]     dkflvkdnj
03/16 3645
3120   c¾ð¾î Ãʺ¸ÀÚÀε¥ ÄÄÆÄÀÏ·¯ âÀÇ ¸ð¸£´Â À̸§µé ¼³¸íÁ»¿ä[3]     songjo12
03/10 3343
3119   ¸Þ¸ð¸® µ¿ÀÛ °úÁ¤ Áß segment¿¡ ´ëÇؼ­..     hallohackers
02/26 3131
3118   µµ¼­°ü¿¡ ¾î¼Àºí¸® ±âÃÊ¿¡ °üÇؼ­ Áú¹®ÀÖ½À´Ï´Ù.[4]     ghgk97
02/11 3357
3117   µµ´ëü.....[3]     h@cking2013
02/10 2895
3116   c¾ð¾î Æ÷ÀÎÅÍ Áú¹®[5]     moomyung93
01/30 3003
3115     [re] c¾ð¾î Æ÷ÀÎÅÍ Áú¹®[1]     ±èº´±Ç
01/30 3907
3114   C¾ð¾î ÀÀ¿ë´É·ÂÀ» Å°¿ì±â À§ÇÑ ¹æ¹ýÀ» °¡¸£ÃÄÁֽñ⠹ٶø´Ï´Ù.[2]     OzShock
01/23 3153
3113   ¿À·ùÄÚµåÁú¹®ÀÌ¿ä[1]     dmsdls00
01/22 3601
3112   ÀÌ ¿À·ù ±Ã±ÝÇÑ°Í     dmsdls00
01/20 3420
3111   Lockbit °ü·ÃµÈ Áú¹®ÀÔ´Ï´Ù.     jkendud
01/19 3676
3110   c++ ¼ÒÄÏÇÁ·Î±×·¡¹Ö     qaz4564
01/14 7177
3109   ÇÁ·Î±×·¡¹Ö ¾ð¾î °ü·Ã Áú¹®[2]     niteofhunter
12/23 2998
3108   ÇöÁ¦ ³×Æ®¿öÅ© »óȲÀε¥ ¼­·Î Á¢¼ÓÀ̾ȵǿä,,     alsrbdu
12/17 3312
3107   À¥ ÇÁ·Î±×·¡¹ÖÀÌ ¹«¾ùÀΰ¡¿ä? [3]     kimhacker123
12/10 3821
[1][2][3][4] 5 [6][7][8][9][10]..[161]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org