重新排序int数组中的数组值

时间:2013-10-26 23:51:30

标签: java arrays integer

我想用这样的东西制作一个数组:

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}

对此:

{6, 5, 4, 3, 2, 1, 0, 13, 12, 11, 10, 9, 8, 7, 20, 19, 18, 17, 16, 15, 14}

但我是如何无能为力。我认为这种方法可以作为我计划的代码的一个很好的替代方案。 (我正在使用Java博士所以没有导入文件BTW)

表示名为integer[]的整数数组:

    (for j = 0; j < 3; j++) {
            (for k = 0; k = 6; k++) {
                int newj = j+1;
                int array = integer[k*newj];
                integer [k*newj] = integer[6 - k*newj -1];
                integer[6 - k*newj - 1] = array;
            }
     }

但这不起作用。

有什么建议吗?这不是作业的一部分,但它是考试的一部分,将在一周内完成,我想确定这一点。

1 个答案:

答案 0 :(得分:1)

您的阵列中有21个元素。根据您提到的描述,您需要将其分为3个部分。每个部分都有7个元素并反转它们。

对于每个部分,我们可以进行交换数据操作。

  1. 将第一个元素与第7个元素交换。
  2. 使用第6个元素搜索第2个元素。
  3. 用第5个元素交换第3个元素。 ......
  4. 注意:数据交换的结束条件为7/2 。它是7个元素的中间索引。

    此处还有一件事是确定每个分割部分的起始指数结束指数是什么。

    以下代码符合您的要求。希望这可以帮到你一些。

        for (int j = 0; j <3; j++) {
            for (int k = 0; k <7/2; k++) {
                int newj = j+1;
                int array = integer[7*newj-k-1];
                integer[7*newj-k-1]= integer [7*j+k];
                integer [7*j+k] = array;
            }
        }