【发布时间】:2020-10-29 04:00:56
【问题描述】:
我正在尝试反转我的冒泡排序,以便所有空元素都被推到数组的末尾而不是开头,因为它们现在正在排序。关于如何实现这一点的任何建议?
for (int outerLoop = 0; outerLoop < students.Length-1; outerLoop++)
{
for (int innerLoop = 0; innerLoop < students.Length-1; innerLoop++)
{
if (students[outerLoop+1] == null)
{
var tempObject = students[outerLoop+1];
students[outerLoop+1] = students[innerLoop];
students[innerLoop] = tempObject;
}
}
}
【问题讨论】:
-
你已经尝试了什么?
-
只需修改您的比较逻辑以评估
null大于任何非空值。 -
您的内部循环中的比较语句在哪里?还是您只想将空值放到底部?
-
@Tarik 是的,没错。我希望它们在底部。
-
在 if 语句和块中,您应该只使用 innerLoop 索引。您应该检查 students[innerLoop] == null
标签: c# arrays sorting bubble-sort