冒泡排序不正常

时间:2012-04-26 14:21:34

标签: c bubble-sort

do
{
    swap=false;
    for(int i=0; i<256; i++)
    {
    if(pd[i]<pd[i+1])
    {
        int temp=pd[i];
            pd[i]=pd[i+1];
            pd[i+1]=temp;
        swap=true;
        }
    }
}
while(swap);

它只能正确返回前两个结果,其余为0。我正在排序浮点数。

2 个答案:

答案 0 :(得分:9)

  

我正在整理漂浮物。

在这种情况下,temp必须是float类型:

float temp=pd[i];

否则,每次进行交换时,您都会将pd[i]截断为int

此外,如果您的float数组可能包含NaN,则在比较时需要额外注意。

答案 1 :(得分:1)

temp的类型为int,但您的数组类型为float ...