Мне интересно, есть ли способ разделить массив на два без оператора деления? Для задачи, которую я делаю, я не могу использовать/или удвоить. Я знаю размер массива, и я знаю, что могу установить размер двух вспомогательных массивов на половину исходного массива, но мне просто интересно, есть ли способ без жесткого кодирования. Спасибо.разделение массива на два без оператора деления
ответ
Предполагая, что вы хотите найти средний индекс массива без использования оператора деления и вы на «использования/или двойная» означает, что вы не можете использовать значение с плавающей точкой (так умножении 0,5 является вне вопроса).
Вы можете ознакомиться с операторами bit-shift. Пример:
int[] myArray = new int[128];
int middleIndex = myArray.length >> 1; // middleIndex is now 64
middleIndex = middleIndex >> 1; // 32
Смещение битов целого числа на одно положение справа эквивалентно делению на два.
Вы можете найти середину массива, установив одну переменную в ноль, а другую - в конец массива, а затем в инкремент цикла и уменьшите другую, пока не встретитесь или не пересечете.
Если ваш массив имеет нечетную длину, они в конечном итоге будут равны, и это будет индекс среднего элемента массива.
Если ваш массив имеет четную длину, они будут отличаться на единицу и отметят средние два элемента массива.
- 1. Отдел на 3 без оператора деления
- 2. Целочисленного деления без использования/или * оператора
- 3. Переопределение оператора деления пола
- 4. Алгоритм модуляции сборки на процессоре без оператора деления
- 5. реляционная алгебра, без использования оператора деления
- 6. Разделение строки на два массива Python
- 7. Разделение данных JSON на два отдельных массива
- 8. Разделите на 9 без использования оператора деления или умножения
- 9. Ошибка от оператора деления
- 10. Неисправность оператора полного деления
- 11. Как выполнить разделение правого массива на два массива ячеек
- 12. Быстрая средняя без деления
- 13. Разделение столбца на два
- 14. Как разделить два числа без использования оператора разделения?
- 15. Поведение StreamTokenizer для оператора деления "/"
- 16. Разделение строки из текстового файла на два отдельных массива
- 17. Разделение массива на столбцы
- 18. Разделение массива на разные переменные
- 19. Перегрузка оператора [], без массива внутри
- 20. Размер массива без оператора sizeof
- 21. Spark - уменьшить с помощью оператора деления
- 22. Разделение массива на равноуровневые подмассивы
- 23. Разделение списка на два списка
- 24. Умножение и разделение на два
- 25. Разделение на два разделителя PHP
- 26. Разделение эвенов списка на два
- 27. Разделение списка на два - Python
- 28. номер Разделить без оператора деления с использованием рубина
- 29. деление числа без использования оператора деления в c
- 30. Разделение строки текста на два массива в C
Использование оператора разделения массива в любом случае не разбило бы его ... – Brendan
Вы имеете в виду, что вы не хотите использовать что-то вроде array.length/2, чтобы определить среднюю точку? – MadProgrammer
Вы можете использовать бит-сдвиги; смещение одной позиции вправо эквивалентно делению на два. – DennisW