2n结构数组交错重排算法的For循环代码重构优化咨询
C# 数组Shuffle方法For循环重构方案
核心实现思路
原代码通过2次独立循环分别填充结果数组的偶数位、奇数位,可优化为单次循环同时处理两组元素的赋值,逻辑更紧凑,迭代效率更高。
重构后代码
public int[] Shuffle(int[] nums, int n) { int[] result = new int[2 * n]; for (int i = 0; i < n; i++) { // 填充x序列到偶数索引位 result[2 * i] = nums[i]; // 填充y序列到相邻奇数索引位 result[2 * i + 1] = nums[i + n]; } return result; }
优化点说明
- 循环总次数从原方案的2n次缩减为n次,降低了迭代开销
- 移除了额外的临时变量
z,直接通过循环索引i计算源数组取值位置和结果数组赋值位置,逻辑更直观,可读性更强 - 代码行数大幅缩减,降低了临时变量重复赋值带来的出错概率,维护成本更低
示例验证
针对输入nums = [2,5,1,3,4,7],n = 3的场景:
- i=0时:result[0] = 2,result[1] = 3
- i=1时:result[2] =5,result[3] =4
- i=2时:result[4] =1,result[5] =7
最终输出为[2,3,5,4,1,7],完全符合需求。
内容的提问来源于stack exchange,提问作者MannyDev
相关产品推荐
相关产品推荐

