30.12.2013 / 23:13 | |
Virus-ON Пользователь Сейчас: Offline
Имя: Макс Откуда: Чернигов Регистрация: 13.10.2011
| vl@volk, Канвас это холст. Только crt, только хардкор |
30.12.2013 / 23:21 | |
ВитаминКО Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| DrawText __________________
わからない!! |
30.12.2013 / 23:27 | |
SeTSeR Пользователь Сейчас: Offline
Имя: Сергей Откуда: Где-то возле Москвы Регистрация: 01.07.2012
| samodelkin, заюзав ассемблерные ставки |
16.01.2014 / 23:08 | |
ВитаминКО Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| Составить программу нахождения заданного значения в отсортированном по возрастанию символьном массиве из N элементов методом двоичного поиска. Программа должна работать и в случае, когда есть несколько одинаковых элементов. В результате работы программы должны выводиться порядковые номера найденных значений. что тут делать нужно? __________________
わからない!! |
16.01.2014 / 23:20 | |
Xamgore Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| ВитаминКО, что смущает? Бинарный поиск, массив символов, или что?
|
17.01.2014 / 03:11 | |
ВитаминКО Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| Бинарный поиск. Я так понимаю, это связанно с методом половинного деления, так?
Мне в общем то нужно в код оформить, ничего сообразить не могу, так то просто вроде, чувствую, но не могу пока что
__________________
わからない!! |
17.01.2014 / 11:12 | |
Xamgore Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| ВитаминКО, бинарный поиск собственно говоря вот: (прочая хурма с массивами) function BinarySearch(a: array of integer; x: integer): integer;
begin
var k: integer;
var i := 0;
var j := a.Length - 1;
repeat
k := (i + j) div 2; // Тут может случиться переполнение
if x > a[k] then
i := k + 1;
else
j := k - 1;
until (a[k] = x) or (i > j);
if a[k] = x then
Result := k
else
Result := -1;
end;
Для ознакомления обязательно прочитать вики: http://ru.wikipedia.org/wiki/%...BE%D0%B8%D1%81%D0%BAИ неплохо разобраться со следующей статьей: http://habrahabr.ru/post/146228/ |
17.01.2014 / 13:34 | |
ВитаминКО Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| Xamgore, спасибо, посмотрю
__________________
わからない!! |
17.01.2014 / 18:23 | |
ВитаминКО Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| Ничего не понял..
__________________
わからない!! |
18.01.2014 / 00:48 | |
Xamgore Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| ВитаминКО (17.01.2014/18:23) Ничего не понял..Что значит ничего? Есть отсортированный массив. Левая правая границы. Смотрим в середину: если это искомый элемент, выходим. Иначе если значение в середине меньше/больше искомого, переставляем меньшую/большую границу в середину и продолжаем поиск.
Это и есть принцип "разделяй и властвуй". Ты разделил массив на две части, покумекал, которая из них тебе нужна и стал работать с нужной частью.
O(N) — обычный поиск, когда сложность бинарного поиска.. O(log2(N)). То есть гораздо лучше.
|