![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Встретился с проблемкой одной... Нужно определить минимальное значение элементов дико огромного массива (порядка 1 млн элементов
![]() Простецкая функция нижеуказанного вида работает только для 100тыщ элементов, а для 1млн выдает ошибку о переполнении стэка. ![]() Код:
function _Find_Min(_data: array of integer): integer; var _i, _value : integer; begin _value := _data[0]; for _i := 1 to Length(_data)-1 do _value := min(_value, _data[_i]); _Find_Min := _value; end; Вижу несколько вариантов решения: 1. в динамическую память запихать этот массив (слышал краем уха про это где-то); 2. рекурсивно как-нибудь задать функцию чтоб она била массив напополам и от половинок минимум искала в самой себе (но с точки зрения кол-ва операций выигрыша практически нет), так что скорее всего не прокатит. Граждане форумчане, если можете предложить другой приемлемый вариант буду крайне признателен. |