α׷

 3206, 4/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 : 4235     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  
3146   c Լ ּ [2]     δٴٴٴ
09/16 4337
3145   α׷ε,ѹ 鷯ּ![1]     cndygks1030
09/12 3268
3144   JSP /ٿε ֽϴ.     hsg0154
07/30 6742
3143   c ޸ [2]     jeongmin9946
07/12 3456
3142   Ϳ ԰..[1]     hogil123
06/28 3506
3141   ̽ Դϴ٤̤     chdl1227
06/14 2991
3140   ۼ cε..[5]     narasa430
06/12 3305
3139 бԴϴ  c ּФ    
05/30 2
3138   [1]     gg5085
05/19 4184
3137   c programming Դϴ.[1]     alexparkjw
05/17 3553
3136   ȳϼ ó ޴µ ڵ ϳ ɱ??     shh9547
05/14 4867
3135   C int Դϴ.[9]     suho0722
05/13 3205
3134   c ͿñѰ ϴ. [1]     rnjsqhs1628
05/08 3326
3133   Ŀθ忡 process Ȯϴ ֳ?     juhyun16
05/03 3632
3132   帳ϴ!     edge12
04/29 3645
3131     [re] 帳ϴ!     cosine
06/28 3162
3130   ms os °ǰ.    
04/18 3138
3129   ǽù Green guard α׷ ˷ ּ [1]     wqw3
04/16 4393
3128   ̰ ϰ Ź帳ϴ.[1]     ys9658
04/06 3352
3127   ڸ ޾ õ,,, ڸ иϿ ϴ α׷ ۼϴ¹[1]     ys9658
04/04 57554
[1][2][3] 4 [5][6][7][8][9][10]..[161]

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