|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Andrei Koulik 2:5020/400 07 Aug 2003 10:44:05 To : Oleg Khovayko [SPAM trap - don't re Subject : Re: поиск локальных max и min в массиве --------------------------------------------------------------------------------
Oleg Khovayko [SPAM trap - don't reply] wrote:
> Evgenij Masherov wrote:
>
> #include <stdio.h>
>
> #define EOM 32000
>
> int mas[] = {0,1,1,2,3,4,5,6,7,5,4,3,2,3,4,5,8,6,5,4,3,2,1, EOM};
>
> main() {
> int *p = mas;
> do {
> do p++; while(p[-1] <= p[0]); printf("MAX: %d\n", p[-1]);
> do p++; while(p[-1] >= p[0]); printf("MIN: %d\n", p[-1]);
> } while(*p != EOM);
> }
>
> PS:
> Тут только надо правильно обработать две крайние точки - первую и
> последнюю (у них нет полного ансамбля окружающих точек). Так как в
> условиях задачи не определено, что с ними делать,
> я с ними поступаю достаточно вольно в этом примере.
> Однако нетрудно устранить этот недостаток, либо модифицировав алгоритм,
> либо скорректировав входной или выходной массив - в зависимости от того,
> ложить или не ложить крайнюю точку на выход.
>
Еще бы не плохо отойти от предположения, что первый максимум. Я уверен,
что где в половине случаев это не так.
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/5501b275e648.html, оценка из 5, голосов 10
|