Написал некоторый код, чтобы попытаться найти максимальный элемент в не упорядоченном массиве, а затем удалить его из массива. У моего первого цикла есть логика, чтобы найти максимальный элемент, а второй цикл должен принимать переменную из первого цикла, заглянуть вперед в одно пространство и затем вставить в элемент max.Удалить элемент max в массиве
Мой код, по-видимому, работает для моей второй идеи .. но не находит правильный элемент массива max.
Мой массив имеет следующие значения {6, 3, 5, 2, 7, 9, 4}. Он находит максимальный элемент массива будет 7 .. это должно быть 9.
public void deleteMax() {
// set value for comparison starting from the beginning of the array
int arrayMax = arr[0];
for (int i = 0; i < nElems; i++) {
if (arr[i] > arrayMax) {
arrayMax = arr[i];
for (int k = i; k < nElems; k++) {
arr[k] = arr[k + 1];
nElems--;
break;
}
}
}
}
Не проще ли просто 'sort()' массива, а затем захватить первый элемент? Что-то вроде 'var max = ary.sort (function (a, b) {return a> b;}). Pop();' – brbcoding
Java! == JavaScript –
Массив должен быть несортирован. – Chewy