c ++冒泡排序紧凑指针

时间:2012-10-29 05:11:01

标签: c++ pointers bubble-sort

我试图用紧凑的指针实现冒泡排序。排序似乎只对前两个进行排序,然后在尝试使用教师提供的DisplayValues驱动程序时失败

  float *Sort(float *first, size_t elements)
{
    {
        for (didSwap = 0, current = first, next = first + 1; current < last; ++current, ++next)
        {
                 didSwap = 1;
            }
        }
        --last;
    }
    while (didSwap);

    return first;
}

2 个答案:

答案 0 :(得分:1)

这很简单,教授的例程期望数组按降序排列。你的代码看起来对我来说是正确的,但它按升序排序。

顺便说一句,你的教授对setiosflags如何运作有误解。它应该是

cout << setiosflags(ios_base::fixed);

设置cout流上的标记。每个流都有它自己的标志,你的教授似乎认为有一套全局标志。 resetiosflags的错误相同。

答案 1 :(得分:0)

不应该有'do'来做'do {...} while block?

float *Sort(float *first, size_t elements)
{
    do
    {
        for (didSwap = 0, current = first, next = first + 1; current < last; ++current, ++next)
        {
             didSwap = 1;
        }

        --last;
    }
    while (didSwap);
}