使用MACRO摇动排序

时间:2017-09-02 06:30:37

标签: c sorting vector macros shake

摇一摇矢量: 程序有效,但是:

我试图使用相同的功能进行气泡向上和向下气泡进行抖动排序(向上气泡以使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, &current_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;\
        }\
    }\
}

需要你的建议来修复这个宏。

0 个答案:

没有答案