- 373 名前:aho mailto:sage [2007/10/27(土) 19:24:07 ]
- /*
メモリの確保は呼び出し元で行う。 この関数内でメモリを確保して配列を返すと、メモリの解放ができない。 \param input 入力配列 \param output 出力配列 \param size 入力配列の大きさ */ void invoke(int* input, int* output, int size){ // 1/2 for(int length = size >> 1; ; length >>= 1){ for(int i=0; i<length; i++){ int sum = input[i*2] + input[i*2 + 1]; int difference = input[i*2] - input[i*2+1]; output[i] = sum; output[length+i] = difference; } if(length == 1) return; //array copy for(int i=0; i<length<<1; i++){ output[i] = input[i]; } } } 一応作ってみた。 確認お願い!
|

|