![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 22.09.2007
Сообщений: 540
|
![]()
Обратите внимание на алгоритм:
l := 1; r := n; while (l<>r) do begin m := l+(r-l)*(Key-A[l])/(A[r]-A[l]); if Key> A[m] then l := m+1 else r := m; end; if A[l]=Key then <элемент найден> else <элемент не найден>; Объясните мне, пожалуйста, как может работать этот алгоритм, если индекс массива А вещественное число. Переменной m присваивают вещественный результат. Я не понимаю, как это сделать! |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]()
Не зная суть задачи трудно подсказывать, но если m - целое число, то можно его плучить разными способами, например вместо (Key-A[l])/(A[r]-A[l]); применить (Key-A[l]) div (A[r]-A[l]); или round((Key-A[l])/(A[r]-A[l]));
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с поиском | EugenZyr | Помощь студентам | 1 | 07.05.2008 14:02 |
Помогите с поиском файлов | Alias_Katty | Помощь студентам | 1 | 16.04.2008 15:03 |
Помогите с поиском | 1234 | БД в Delphi | 5 | 01.04.2008 11:33 |
Помогите с поиском | Egych | PHP | 1 | 09.08.2007 08:00 |