【发布时间】:2016-07-25 15:51:05
【问题描述】:
我有这种对“arr1”进行排序的冒泡排序算法。
static int yearAscDes(int value)`
{
if (value == 0)
{
int[] arr1 = { 1930, 1931, 2016, 2014, 2012 };
int temp1 = 0;
for (int i1 = 0; i1 < arr1.Length; i1++)
{
for (int j1 = 0; j1 < arr1.Length - 1; j1++)
{
if (arr1[j1] < arr1[j1 + 1])
{
temp1 = arr1[j1 + 1];
arr1[j1 + 1] = arr1[j1];
arr1[j1] = temp1;
}
}
}
for (int i1 = 0; i1 < arr1.Length; i1++)
{
Console.Write(arr1[i1] + " \n");
}
return 0;
}
我想使用此算法对 3 个不同的数组进行排序,然后将它们相互比较。
例如
int[] arr1 = {1930, 1931, 2016, 2014, 2012};
string[] Months = {"Jan", "March", "Dec", "May", "Sept"};
int[] Num = {10, 5, 1, 3, 12};
如果我有这些数组并按升序对 arr1 进行排序,我希望结果如下所示:
结果:
arr1 月数
2016 年 12 月 1 日
2014 年 5 月 3 日
2012 年 9 月 12 日
1931 年 3 月 5 日
1930 年 1 月 10 日
【问题讨论】:
-
为什么不只使用
DateTime的1个数组? -
虽然@SamIam 说得非常正确,但如果你必须坚持使用这种数据结构,当你说
arr1[j1 + 1] = arr1[j1];时,你能不能也添加Months[j1 + 1] = Months[j1];和Num[j1 + 1] = Num[j1];作为存储另外两个温度值temp2 = Months[j1 + 1]和temp3 = Num[j1 + 1] -
将日期分成 3 个数组对我来说似乎真的违反直觉。你可以省去那个巨大的排序功能,然后按照@SamIam 所说的去做。
-
我确定这是一个作业,
标签: c# sorting bubble-sort