好的,所以我有一个数组,其中包含6个月(jan-jun)每个月注册的客户数量的6个值。让我们说CustomerSavedByMonth [i]。现在这些按月排序,因此在0指数时,有1月份,1个月份的客户等。
我想使用冒泡排序对这些进行排序,以便我可以显示最高客户的月份。然而,当我对它们进行冒泡排序时,它们将失去上下文,因为现在它们没有特定的月份它们只是有序。我真的不知道如何更好地解释它,所以我希望这是有道理的。我怎样才能确保当它排序时我仍然知道哪个月是什么数字?如果这是一个愚蠢的问题,我为此道歉,但我无法弄清楚如何处理它。感谢
答案 0 :(得分:1)
接近这个的一个简单方法是设置一个索引数组,然后你可以对它进行排序,对数据数组中相应项的值进行比较,这样你就不会失去对月份的跟踪。
上述简单的C#实现如下:
int[] CustomerByMonth = { 60, 50, 40, 30, 20, 10 };
int[] index = { 0, 1, 2, 3, 4, 5 };
int tmp = 0;
for (int i = 0; i < index.Length; ++i)
{
for (int j = 0; j < index.Length - 1; ++j)
{
if (CustomerByMonth[index[j]] > CustomerByMonth[index[j + 1]])
{
tmp = index[j + 1];
index[j + 1] = index[j];
index[j] = tmp;
}
}
}
// Display month number and customer amount for month with highest amount of customers
Console.Write(index[CustomerByMonth.Length - 1] + " : " + CustomerByMonth[index[CustomerByMonth.Length - 1]]);