C 气泡排序紧凑型指针

c++ bubble sort compact pointers

本文关键字:指针 紧凑型 排序 气泡      更新时间:2023-10-16

我试图用紧凑的指针实现气泡排序。这种类型似乎只排序前两个,然后在尝试使用老师提供的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;
}

这很简单,教授常规期望该数组会降序。您的代码对我来说是正确的,但与上升顺序相称。

顺便说一句,您的教授对setiosflags的工作方式有误会。应该是

cout << setiosflags(ios_base::fixed);

cout流上设置标志。每个流都有自己的旗帜,您的教授似乎印象深刻,有一套全球的旗帜。resetiosflags的同样错误。

不应该有一个'do'使'do'do {...}时?

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);
}