Я боролся с этим в течение некоторого времени и, кажется, ничего не получаю. Настройка такова; У меня есть двумерный массив. Для этого массива мне нужно перебрать каждое значение и вернуть диагональных соседей (5 значений). Эти соседи будут помещены в новый массив 1D [5] и отсортированы пузырьком. Затем будет возвращено среднее значение (медиана) и помещено в новый массив медиан.
Пока у меня есть методы извлечения диагональных соседей:
//get diagonals from original DEM
double [] getDiagonals(int i, int j) {
double [] tempArray = new double [5];
tempArray[0] = data[i -1][j +1];
tempArray[1] = data[i -1][j -1];
tempArray[2] = data[i][j];
tempArray[3] = data[i +1][j -1];
tempArray[4] = data[i +1][j +1];
return tempArray;
}
Затем я использовал этот метод в итерации, чтобы получить диагонали для каждого значения в исходном массиве:
//get diagonals for each
double [] [] bubbles(){
double [] [] datap = new double [298] [298];
for (int i = 1; i < data.length; i++){
for (int j = 1; j < data[i].length; j++) {
if ((i > 0) && (j > 0)) {
if ((i < data.length-1) && (j < data.length-1)){
double [] tempArray = getDiagonals(i, j);
//do something with the tempArray
Я думаю, что это то место, где я выхожу из себя. При тестировании метод getDiagonals работает нормально. Я изо всех сил пытаюсь получить tempArray из метода bubbles(). Если я установлю вывод как tempArray, он вернет только 5 значений, рассчитанных для нижнего правого угла исходного массива.
Я пробовал вызывать другие методы в методе bubbles(), чтобы выполнить там всю обработку и вернуть новый массив:
//get diagonals for each
double [] [] bubbles(){
double [] [] datap = new double [298] [298];
for (int i = 1; i < data.length; i++){
for (int j = 1; j < data[i].length; j++) {
if ((i > 0) && (j > 0)) {
if ((i < data.length-1) && (j < data.length-1)){
double [] tempArray = getDiagonals(i, j);
double sorted [] = sort(tempArray);
double median = sorted[2];
for (int z = 0; z < datap.length; z++){
for (int y = 0; y < datap[z].length; y++){
datap[z][y] = median;
}
}
}
}
}
}
return datap;
}
Опять же, это не удается, и выходные данные просто нули. Приведенный выше метод sort() передал диагонали методу пузырьковой сортировки (который, как я знаю,
Я предполагаю, что мой вопрос заключается в том, как обрабатывать внутри метода, который выполняет итерацию и заполняет новый массив?
Я надеюсь, что это имеет смысл, но если вам нужна дополнительная информация, пожалуйста, дайте мне знать. И да, я использую пузырьковую сортировку. Я знаю, что это ерунда, но это для курса, который я делаю, поэтому его нужно использовать. И да, я новичок в java.
Любая помощь будет принята с благодарностью (и я даже буду ссылаться на вас, если мне нужно использовать некоторый код, который вы предоставляете;)