我编写了这个方法来检查一个数组是否按升序排序。感谢您的评论。
static void Main(string[] args)
{
int[] arrayToCheck = { 1, 1, 3, 5 ,2, 7};
Console.WriteLine(IsSorted(arrayToCheck));
}
在第一步中,我设置了“for循环”,以检查每个单独的数组整数是否小于索引为-1的整数。然后,我创建了一个布尔数组,存储了所有这些条件(真/假)。
static bool IsSorted(int[] array)
{
bool[] checkAscending = new bool[array.Length - 1];
for (int i = 1; i < array.Length; i++)
{
checkAscending[i - 1] = array[i] >= array[i - 1];
}
在第二步中,为了将值1赋给true和0赋给false条件,我设置了“for loop”嵌套if和else条件。
int[] trueToOne = new int[checkAscending.Length];
for (int i = 0; i < checkAscending.Length; i++)
{
if (checkAscending[i] == true)
trueToOne[i] = 1;
else if (checkAscending[i] == false)
trueToOne[i] = 0;
}
在最后一步中,我必须创建一个新的方法“Add”,它以整数数组作为参数,并添加每个单独的数组字符。如果加法的结果等于数组trueToOne的长度,那么所有条件都为真,整数数组已排序。
int result = Add(trueToOne);
if (result == trueToOne.Length)
{
return true;
}
else
{
return false;
}
}
并添加方法:
public static int Add(int[] array)
{
int[] sum = new int[array.Length];
for (int i = 1; i < array.Length; i++)
{
sum[0] = array[0];
sum[i] = array[i] + sum[i - 1];
}
return sum[sum.Length - 1];
}
}