0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 4
1

Простая Задачка с массивом

22.05.2018, 10:00. Показов 1716. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Решил данную задачку, но в ответе написали, что я не использую тот факт, что массив отсортирован, и получается не оптимально.

Помогите разобраться с примером.
Есть отсортированный по возрастанию массив из 1000 элементов. Есть число, которое точно есть в этом массиве. Выведите на экран его порядковый номер.
  • Не используйте готовый функций поиска, напишите код.
  • Ваш код должен использовать то, что массив уже отсортирован, и быть по возможности оптимальным.
0
Лучшие ответы (1)
22.05.2018, 10:00
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.05.2018, 10:00
Ответы с готовыми решениями:

Простая авторизация на php и mysql, очень простая!
В базе данных таблица с двумя строками: id, user, password. На странице есть два поля для ввода (имени и пароля) и кнопка входа. По...

Задачка с массивом и задачка с формулами Ньютона и Лагранжа
Прошу помочь решить две задачи

простая задачка
Требуется написать программу, определяющую количество символов до точки. Точка в строке одна.

4
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
22.05.2018, 10:10 2
Код, написанный Вами, покажите.
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
22.05.2018, 10:27 3
Подозреваю что там перебор всех элементов. Попробуйте реализовать бинарный поиск.
2
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 4
22.05.2018, 11:35  [ТС] 4
PHP
1
2
3
4
foreach($array as $key=>$item)
    if($item === $needle){
        print $key; break;
    }
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
22.05.2018, 13:17 5
Лучший ответ Сообщение было отмечено Lex Backer как решение

Решение

Бинарный поиск:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function array_find(array $haystack, $needle)
{
    if (!$haystack) {
        return;
    }
    
    $offset = 0;
    $end    = count($haystack) - 1;
    
    while ($offset < $end) {
        $middle = $offset + (($end - $offset) >> 1);
        
        if ($haystack[$middle] >= $needle) {
            $end = $middle;
        } else {
            $offset = $middle + 1;
        }
    }
    
    if ($haystack[$end] === $needle) {
        return $end;
    }
}
Добавлено через 1 минуту
На малом кол-ве элементов в массиве работает медленнее, чем простой перебор. На большом кол-ве в десятки раз быстрее.
1
22.05.2018, 13:17
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.05.2018, 13:17
Помогаю со студенческими работами здесь

Простая задачка
Хотя может задачка и не такая простая. В чём суть. Есть библиотека игрового сервера, там файл GameServer.class, в котором прописан запуск...

Простая задачка
data Figura = Okr Int | Pryamoygolnik Int Int | Treygolnik Int Int Int plot Figura (Figura (Okr(r))) = r^2 * 3 plot Figura (Figura...

Простая задачка
Здрасте, заранее извиняюсь если создал не в той теме просто в джава вообще 0. Помогите решить задачу, говорят простая, на шарпе или...

Простая задачка
Здравствуйте. Есть вот такая задачка: Написать программу на С пораждающая в цикле следующюю таблицу значений: A A+2 A+4 A+6 3 5 7 9 ...

не простая задачка
как найти корень квадратного уравнения у минус 2 ПСЧ ?????


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Использование кэша Laravel - полный гайд
bytestream 18.02.2025
Кэширование - один из наиболее эффективных способов повышения производительности веб-приложений. В современном мире, где скорость загрузки страниц напрямую влияет на удержание пользователей и. . .
Создаем REST API в Laravel с аутентификацией и Passport
bytestream 18.02.2025
Разработка современных веб-приложений все чаще требует создания надежного и хорошо структурированного API. REST API стал стандартом де-факто для построения взаимодействия между клиентской и серверной. . .
Пайплайны в Laravel - полный гайд
bytestream 18.02.2025
Разработка современных веб-приложений часто требует обработки сложных процессов, состоящих из множества последовательных шагов. Например, при создании системы комментариев может потребоваться. . .
Как правильно использовать @required в Symfony
bytestream 18.02.2025
При разработке приложений на Symfony мы часто сталкиваемся с необходимостью внедрения зависимостей. Фреймворк предоставляет несколько способов управления этим процессом, и одним из таких инструментов. . .
Система безопасности в Laravel: возможности и примеры
Wired 18.02.2025
Каждый день появляются новые виды атак и уязвимостей, которые могут поставить под угрозу конфиденциальные данные пользователей и функционирование всей системы. В этом контексте выбор надежного. . .
Давайте сравним Django и Laravel
Wired 18.02.2025
Django и Laravel - два мощных инструмента, которые часто сравнивают между собой. Оба фреймворка предлагают разработчикам богатый набор возможностей для создания масштабируемых веб-приложений, но. . .
Laravel или React - что лучше?
Wired 18.02.2025
В разработке веб выбор правильного инструмента часто определяет успех всего проекта. Особенно интересным представляется сравнение Laravel и React - двух популярных технологий, которые часто. . .
Laravel 11: новые возможности, гайд по обновлению
Wired 18.02.2025
Laravel 11 - это новая масштабная версия одного из самых популярных PHP-фреймворков, выпущенная в марте 2024 года. Эта версия продолжает традицию внедрения передовых технологий и методологий. . .
Миграции в Laravel
Wired 18.02.2025
Разработка веб-приложений на Laravel неразрывно связана с управлением структурой базы данных. При работе над проектом часто возникает необходимость вносить изменения в схему базы данных - добавлять. . .
Аутентификация в Laravel
Wired 18.02.2025
В современном мире веб-разработки безопасность пользовательских данных становится критически важным аспектом любого приложения. Laravel, как один из самых популярных PHP-фреймворков, предоставляет. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru