我写了一个冒泡排序,但是,当我打印出数组时,它是排序的,但它以最大的数字开始,以最小的数字结束。
public int[] BubbleSort(int[] unsortedArray)
{
for(int i = 0; i < unsortedArray.Length; i++)
for(int j = 0; j < unsortedArray.Length; j++)
if(unsortedArray[i] < unsortedArray[j])
{
int temp = unsortedArray[i];
unsortedArray[i] = unsortedArray[j];
unsortedArray[j] = temp;
}
return unsortedArray;
}
任何人都可以解释为什么列表被颠倒了。
编辑:对不起,粘贴了错误的代码。
当该行读取 if(unsortedArray[i] < unsortedArray[j]) 时,列表从低到高排序,但是,这在逻辑上没有意义。如果 i 小于 j,则交换它们。