想象一下,我得到两个数组作为输入,其中一个已经排序。我想创建一个方法来检查哪个数组已排序,然后返回它。我真的不确定如何做到这一点
class Program
{
public double[] a = new double[] { 1, 3, 4, 8, 21, 38 };
public double[] b = new double[] { 1, 7, 19, 3, 2, 24 };
public void CheckSorting()
{
if (/* if a is sorted */)
{
return a;
}
else { /* This should be OK because if A isnt sorted then b MUST be sorted since of the arrays are always sorted in my input */
return b;
}
}
static void Main(string[] args)
{
Program checkSorting = new Program();
checkSorting.CheckSorting();
}
}
在这种情况下,您可以看到数组A应该作为已排序的
返回答案 0 :(得分:1)
只是....在向前方向上循环其中一个阵列;如果值已经下降,那个数组就没有排序
for(int i = 1 ; i < a.Length ; i++)
{
if(a[i] < a[i-1]) return b;
}
return a;
答案 1 :(得分:0)
private double[] ArraySort()
{
double[] a = new double[] { 1, 3, 4, 8, 21, 38 };
double[] b = new double[] { 1, 7, 19, 3, 2, 24 };
var isOrderedAscending = a.SequenceEqual(a.OrderBy(x => x));
if (isOrderedAscending)
return a;
else
return b;
}
这种方法可能对你有帮助, 但是如果要么两个都没有订购要做什么呢?