冒泡排序不正常

Ale*_*vid -1 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);
Run Code Online (Sandbox Code Playgroud)

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

NPE*_*NPE 9

我正在整理花车.

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

float temp=pd[i];
Run Code Online (Sandbox Code Playgroud)

否则,你截取pd[i]int每次做交换时间.

此外,如果您的float阵列可能包含NaN,则在比较时需要额外注意.