我正在尝试将C ++代码转换为Java。
C ++代码段为:findMedian(array+left+i*5, 5);
。
传递的参数是根据i的值改变的数组地址。如何修改此代码以使其在Java中工作?方法如下:
public int findMedian(int arr[], int n)
{
Arrays.sort(arr);
return arr[n/2]; // Return middle element
}
答案 0 :(得分:5)
您可以使用Arrays.sort
的其他重载来仅对数组的一部分进行排序:
public static int findMedian(int arr[], int from, int n) {
Arrays.sort(arr, from, from + n);
return arr[from + (n / 2)]; // Return middle element
}
然后打电话给:
findMedian(array, left + i * 5, 5);
答案 1 :(得分:4)
正如其他人所说,Java不允许你对指针进行数学运算,或者根本不看它们。通常,在Java中,指针和内存是编译器的问题,而不是你的问题。
话虽这么说,你仍然可以查看数组中的值;只需传递一个对数组本身的引用,然后对索引进行必要的计算。如果不确切知道该方法的作用,那就更难具体化了。
答案 2 :(得分:2)
答案 3 :(得分:1)
这可行吗?
findMedian(array, left+i*5, 5);
签名:
public int findMedian(int[] array, int offset, int value1) {
//...
}