我按升序排序数组。我必须以这样的方式构建一个新数组:排序数组的最后一个元素将是新数组的第一个元素,并且排序数组的第一个元素将是新数组的下一个元素,依此类推。 例如 -
//if a[] is the sorted array.
a[]={1,2,3,4,5}
//output-
//b[] is the new array.
b[]={5,1,4,2,3}
我的方法是 -
使用两个索引i
和j
。
for (int i = 0, j = 0; j< count; i++, j++)
{
b[j] = a[count - (i + 1)];
b[++j] = a[i];
}
现在问题是如何仅使用单个索引来实现这一点,即仅使用我的示例中的索引i
。
提前致谢!
答案 0 :(得分:3)
for (int i = 0; i < count / 2; i++)
{
b[2*i] = a[count - (i + 1)];
b[2 * i + 1] = a[i];
}
if (count % 2)
{
b[count - 1] = a [count / 2];
}