C#中的快速数组移位实现可以使用以下代码:
public static void ShiftArray(int[] arr, int shift)
{
if (arr == null || arr.Length == 0)
{
return;
}
int n = arr.Length;
int shiftAmount = shift % n;
// 将数组分为两部分,前半部分和后半部分
int[] temp = new int[n];
Array.Copy(arr, 0, temp, 0, shiftAmount);
Array.Copy(arr, shiftAmount, arr, 0, n - shiftAmount);
Array.Copy(temp, 0, arr, 0, shiftAmount);
}
这个函数将一个整数数组向左移动指定的shift
个位置。shift
是一个非负整数,表示数组向左移动的位置数。函数首先检查数组是否为空或者长度为0,如果是则直接返回。然后计算需要移动的位置数shiftAmount
,并使用Array.Copy
方法将数组分为两部分,前半部分和后半部分。最后将前半部分和后半部分重新组合,完成数组移位。
以下是一个完整的示例代码,展示了如何使用这个函数:
int[] arr = { 1, 2, 3, 4, 5 };
int shift = 2;
ShiftArray(arr, shift);
foreach (int i in arr)
{
Console.WriteLine(i);
}
这个示例代码将数组{ 1, 2, 3, 4, 5 }
向左移动2个位置,并输出移位后的数组。
领取专属 10元无门槛券
手把手带您无忧上云