摇一摇矢量: 程序有效,但是:
我试图使用相同的功能进行气泡向上和向下气泡进行抖动排序(向上气泡以使MAX值向右移动并向下气泡以获得向左的最小值)。为了做到这一点,我试图使用以下不编译的MACRO:
标志为'+',oper为'>'泡沫
符号是' - ',oper是'<'泡沫下来
冒泡起泡 -start是iterator i(迭代Vector索引)
结束是n-1-i;
气泡下降交换开始和结束值
#define bubble_up_down(var_t, pVector, _Is_swp, start, end, sign, oper)\
{\
var_t current_index;\
var_t current_val;\
var_t next_val;\
for (current_index = *(start) ; current_index (oper) *(end) ; (sign)(sign)current_index){\
{\
VectorGet((pVector), current_index, ¤t_val);\
VectorGet((pVector), current_index(sign)1, &next_val);\
if(current_val (oper) next_val)\
{\
VectorSet((pVector), current_index, next_val);\
VectorSet((pVector), current_index(sign)1, current_val);\
*(_Is_swp) = 1;\
}\
}\
}
需要你的建议来修复这个宏。