我有一个包含8个元素的字符串数组,例如AB CD EF GH。我想按照以下顺序进行:
BA DC FE HG
主要思想是改变索引处的值:
1与0,0与1
,3与2,2和3
,5与4,4与5
,7,6,6与7
.....对于任何给定长度或数组的内容。
感谢您的帮助。
答案 0 :(得分:0)
只需在索引上使用xor 1
访问数组,这样您就不必移动任何内容或创建新数组:
int n = arr[index ^ 1];
如果要创建新数组,只需复制数组并从源代码访问该数组:
int[] newArr = new int[arr.Length];
for (int i = 0; i < arr.Length; i++) {
newArr[i] = arr[i ^ 1];
}
注意:这假定数组中有偶数项。如果会有奇数个项目,则无法将最后一项交换为。