Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2018, 13:04   #1
Frakis
Новичок
Джуниор
 
Регистрация: 04.06.2018
Сообщений: 10
По умолчанию Найти элемент в упорядоченном массиве длинны N

Найти элемент в упорядоченном массиве длинны N методом деления массива на k приблизительно равных частей.Нужно как в бинарном поиске все сделать , но делить не на 2 , а на вводимое число k.Заранее спасибо
Frakis вне форума Ответить с цитированием
Старый 04.06.2018, 13:40   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

И? Берет код бинарного поиска и заменяете там два на k. Проблема в чем?
p51x вне форума Ответить с цитированием
Старый 04.06.2018, 19:54   #3
Frakis
Новичок
Джуниор
 
Регистрация: 04.06.2018
Сообщений: 10
По умолчанию

А поиск элемента? Там же будет уже не одно среднее число . Как минимум два , если брать k = 3.

Последний раз редактировалось Frakis; 04.06.2018 в 20:00.
Frakis вне форума Ответить с цитированием
Старый 04.06.2018, 19:59   #4
Frakis
Новичок
Джуниор
 
Регистрация: 04.06.2018
Сообщений: 10
По умолчанию

Мы , получается , делим массив на три части и сравниваем искомое число с двумя средними числами
И уже в полученной части продолжаем, делим ее на три

Последний раз редактировалось Frakis; 04.06.2018 в 20:07.
Frakis вне форума Ответить с цитированием
Старый 04.06.2018, 23:23   #5
Frakis
Новичок
Джуниор
 
Регистрация: 04.06.2018
Сообщений: 10
По умолчанию

В голове вроде все понятно , а написать код не могу . Не могу разобраться , как реализовать этот код
Frakis вне форума Ответить с цитированием
Старый 05.06.2018, 12:08   #6
Frakis
Новичок
Джуниор
 
Регистрация: 04.06.2018
Сообщений: 10
По умолчанию

Не могли бы вы помочь? Подкинуть идею алгоритма.
Frakis вне форума Ответить с цитированием
Старый 05.06.2018, 12:15   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Так идея та же и она у вас написана. Делим сравниваем, выбираем, повторяем.
p51x вне форума Ответить с цитированием
Старый 05.06.2018, 14:08   #8
Frakis
Новичок
Джуниор
 
Регистрация: 04.06.2018
Сообщений: 10
По умолчанию

Идею я понимаю , я не могу это превратить в код
Frakis вне форума Ответить с цитированием
Старый 05.06.2018, 14:14   #9
Frakis
Новичок
Джуниор
 
Регистрация: 04.06.2018
Сообщений: 10
По умолчанию

Понимаю , что нужно поделить массив на k частей , потом сравнить элемент и снова делить .Но не могу написать это
Frakis вне форума Ответить с цитированием
Старый 05.06.2018, 14:23   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

в массиве у нас N элементов
Цитата:
что нужно поделить массив на k частей
какие номера(индексы) будут граничных элементов. N/k , ...
вот незадача-то N/k вообще-то не будет целое. и...
итак первый из граничных индексов(не элементов) найден, это m.
а какой это элемент?..
а следующий индекс?..
Цитата:
потом сравнить элемент
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти минимальный элемент в массиве. C++ asdf_7 Помощь студентам 1 09.12.2014 20:11
Найти средний элемент в упорядоченном массиве nurzhan_1990 Помощь студентам 1 12.09.2014 06:29
СИ: Найти в упорядоченном массиве заданный элемент методом деления массива пополам (бинарный поиск) vikysha55 Помощь студентам 1 15.04.2014 12:23
Поиск в массиве, упорядоченном по неубыванию Сурка Помощь студентам 1 15.11.2009 22:24