请问一下如何把一个一维数组内的指定元素移到数组末尾

img

img

请问一下,如何把一个一维数组内的指定元素移到数组末尾。

sjentifoglgkehqiflktkdlfnwlsnrlfm

贴的图和问题没有明显联系,所以我只能根据题目回复通用解法

int[] arr = new int[] { 1, 2, 3, 4, 5 };

// 用个临时变量保存一下第一位
int temp = arr[0];
Array.Copy(arr, 1, arr, 0, arr.Length - 1); //移动除第一位外的,基本过程其实和上面那位一样,只不过我这里用copy直接从连续内存前移动1位
arr[arr.Length - 1] = temp;//把原来的第1位移动到末尾上

// 输出数组
foreach (int i in arr)
{
    Console.Write(i + " ");
}

你可以参考我的2048实现方式,如有问题再说

假设数组为 int x[],要移动的数组元素下标为 i,数组大小为 N,移动到数组末尾,分两种情况:
1、与末尾元素交换,使用中间变量:

int t = x[N];
x[N] = x[i];
x[i] = t;

2、移到末尾,它原来位置后面的元素前移,使用循环逐个前移:

int t = x[i];
for (int j=i; j<N-1; j++)
    x[j] = x[j+1];
x[N] = t;