【发布时间】:2021-11-13 06:19:59
【问题描述】:
这是我的第一个堆栈溢出帖子,如果格式不正确,非常抱歉。无论如何,以下是 C#,我使用的是 Visual Studio 2019 .NET Core 3.1
目标:按升序对整数数组进行排序,例如。 [3, 2, 5, 1] -> [1, 2, 3, 5]
问题:方法对除第一个元素外的所有内容进行排序。 [3, 2, 5, 1] -> [3, 1, 2, 5]
代码:
for (int i = 0; i < array.Length; i++)
{
if(i != array.Length - 1 && array[i] > array[i + 1])
{
int lowerValue = array[i + 1];
int higherValue = array[i];
array[i] = lowerValue;
array[i + 1] = higherValue;
i = 0;
}
}
我已经放入了 Console.WriteLine() 语句(一个在上面的 for 循环之外查看起始数组,另一个在 if 语句中查看它在发生更改时如何更新数组,是的,我知道我可以使用调试器,但我目前没有任何方法调用这个 for 循环所在的方法)来查看它如何调整数组,它会定期显示它通过迭代运行而不改变任何东西。
另外,如果有人能告诉我这是什么时间复杂度,那就太好了。我最初的猜测是它是线性的,但我觉得“i = 0”语句和它交换值的方式使它成指数。谢谢!
【问题讨论】:
-
你调试过这个吗?您应该能够通过逐行逐步了解它在做什么。一旦你让它工作,在你的代码中放一个计数器,看看它对于 5、10、50、100 长度的集合的行为。这将使您了解大 O 复杂性
-
不,因为我想看看人们还有什么其他建议以及时间复杂度。
标签: c# arrays sorting .net-core