gpt4 book ai didi

java - 有效地交替 int 数组

转载 作者:行者123 更新时间:2023-11-29 08:36:13 25 4
gpt4 key购买 nike

我有一个快速的小程序,它将采用 int[] 并将其中的最大数字与最小数字交替。

值得注意的是,这个程序只需要处理一个长度为偶数的int[]

有没有更快的方法来完成数组的交替,而无需将数组的两半复制到单独的数组中,然后将它们合并回初始数组中?

import java.util.Arrays;

public class Main {
public void run() {
int[] arr = {1, 9, 14, 12, 2, 5, 8, 7, 3, 6, 4, 13, 10, 11};
Arrays.sort(arr);

int length = arr.length;
int length2 = length / 2;

int[] cA = new int[length2];
int[] dA = new int[length2];

int c = 0;

System.arraycopy(arr, 0, cA, 0, length2);
System.arraycopy(arr, length2, dA, 0, length2);

for(int i = 0; i < length; i++) {
if(i % 2 == 0) {
arr[i] = cA[c];
} else {
arr[i] = dA[c];
c++;
}
}

System.out.println(Arrays.toString(arr));
}

public static void main(String[] args) {
new Main().run();
}
}

上面例子的预期输出是

[1, 8, 2, 9, 3, 10, 4, 11, 5, 12, 6, 13, 7, 14]

最佳答案

这是一个更简单的版本:

    int n = arr.length;
int middle = n / 2;
int[] output = new int[n];

for (int i = 0; i < middle; i++){
output[2 * i] = arr[i];
output[2 * i + 1] = arr[i + middle];
}

Demo.

关于java - 有效地交替 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43956359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com