- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
int function BinarySearch (Array A, int Lb, int Ub, int Key);
begin
do forever
M = (Lb + Ub)/2;
if (Key < A[M]) then
Ub = M - 1;
else if (Key > A[M]) then
Lb = M + 1;
else
return M;
if (Lb > Ub) then
return -1;
end;
bormand 28.09.2013 21:40 # 0
Lure Of Chaos 28.09.2013 21:47 # +2
внимание на строчку №04
bormand 28.09.2013 21:49 # +5
P.S. Где-то тут уже обсуждались непереполняющиеся алгоритмы для поиска среднего арифметического... Кажется, Царь еще в этом участвовал.
Lure Of Chaos 28.09.2013 21:59 # 0
именно
> Кажется, Царь еще в этом участвовал.
эпично, а я пропустил. нетрудно будет выковырять линк на обсуждение?
bormand 28.09.2013 22:08 # 0
bormand 28.09.2013 22:12 # +1
epic_fail 29.09.2013 01:23 # 0
bormand 29.09.2013 08:07 # +2
[spoiler]на x86_64 в сишке и жабе инт остается 32-битным.[/spoiler]
guest 07.03.2017 21:51 # 0
bayan 07.03.2017 21:55 # 0
в какой?
в gcc и в vc могут быть разные мнения
guest 07.03.2017 22:20 # 0
TarasB 29.09.2013 11:17 # 0
bormand 29.09.2013 11:17 # +1
> да нахуй такие большие массивы
Причем не просто большие массивы, а большие упорядоченные массивы.
Lure Of Chaos 29.09.2013 11:36 # +1
одно дело, когда у тебя приложение, и ты полностью контролируешь данные.
другое дело, когда у тебя библиотека (скажем, опенсорс на гитхабе) и ты не знаешь, как ее будут иметь использовать.
а скажем, ты подключаешь чью-то зависимость, а там баг - из-за которого раз в миллиард лет ты попадаешь на миллиард баксов и это произошло. далее сценарий и выводы оставляю почти земляку.
blackhearted 30.09.2013 11:17 # 0
включая border/invalid cases.
случай с огромным массивом и переполнением - классический border case.
Lure Of Chaos 30.09.2013 12:00 # 0
3Doomer 30.09.2013 15:35 # +2
wvxvw 29.09.2013 13:45 # +1
Индекс какой-нибудь ниофорджа или бигдаты
Lure Of Chaos 29.09.2013 13:51 # +1
bormand 29.09.2013 14:12 # +1
Lure Of Chaos 29.09.2013 14:30 # 0
bormand 29.09.2013 14:57 # 0
На интерпретируемый PHP? :)
Lure Of Chaos 29.09.2013 15:08 # 0
bormand 29.09.2013 16:13 # 0
А ну да, забыл. Они же вроде этот компилятор пыхи и мутили?
Lure Of Chaos 29.09.2013 17:08 # 0
Abbath 30.09.2013 00:54 # 0
Lure Of Chaos 30.09.2013 00:58 # 0
kegdan 30.09.2013 02:38 # 0
crastinus 29.09.2013 11:03 # −1
Кто нибудь знает как определить, что функция находится в потоке, и идентифицировать этот поток относительно быстрыми методами?
bormand 29.09.2013 11:09 # 0
Что значит в потоке? Любая функция исполняется в каком-нибудь потоке, даже main() :)
И используемые тобой язык, библиотеку/фреймворк и операционку хотя бы назови... мы ж не телепаты, чтобы все это угадывать...
P.S. В общем виде ответ звучит так: "Есть некая функция, которая возвращает id потока. Запиши где-нибудь в main'е id главного потока и сравнивай айди текущего с ним."
crastinus 29.09.2013 11:44 # 0
bormand 29.09.2013 11:46 # +4
Линух: gettid()
Кресты 11: std::this_thread::get_id()
defecate-plusplus 29.09.2013 11:53 # +4
Stertor 29.09.2013 11:58 # −7
:D
Stertor 01.10.2013 20:10 # −5
П.с. раз уж начали минусовать, доведите дело до конца. Вон, 2 минуса осталось.
Stertor 03.10.2013 22:16 # −2
bayan 07.03.2017 22:36 # 0
guest 07.03.2017 22:43 # 0
bayan 07.03.2017 22:46 # +1
ну тогда упасть с эксепшеном чтобы операционка записала дамп, а потом настроить её так чтобы она заново запустила твою программу в случае падения и при запуске считать дамп, открыть его дебагфункциями и найти там стек
CHayT 07.03.2017 23:00 # 0
Но Pid при этом сменится.
bayan 07.03.2017 23:03 # 0
тогда нужно в кажом потоке вызывать специальную функцию, например Potok1() чтобы найти её в стеке и понять что это твой поток. Таких функций советую сделать много чтобы хватило на все потоки.
кстати, в линуксе же нету JIT debugging для postmorten (Как AeDebug в венде).
Выходит надо сразу под gdb запускать
bayan 07.03.2017 23:10 # 0
но вариант крешем и перезапуском мне нравится
я даже знаю как скрипт для дебагера написать чтобы он перезапускал
crastinus 08.03.2017 09:49 # 0
guest 07.03.2017 15:50 # 0
guest8 09.04.2019 18:26 # −999
guest8 09.04.2019 18:27 # −999
guest8 09.04.2019 18:27 # −999
guest8 09.04.2019 18:28 # −999
guest8 09.04.2019 18:29 # −999