Тема: Сідлова точка

Цікавить алгоритм знаходження максимумів і мінімумів в масиві, використовуючи метод  "сідлової точки"

2 Востаннє редагувалося koala (31.01.2014 16:05:30)

Re: Сідлова точка

Злісний сарказм.

Я би вам радив шукати максимуми і мінімуми, використовуючи метод "пошуку максимумів і мінімумів".

Вибачте, не втримався. Не існує ніякого "методу сідлової точки" - навпаки, сідлову точку шукають за максимумами і мінімумами. З чого можна зробити висновок, що вам треба зробити не те, що ви просите, а щось інше. Що саме?

Подякували: leofun011

3

Re: Сідлова точка

Мені просто цікавий алгоритм сідловою точки

4

Re: Сідлова точка

Будь-ласка

Подякували: leofun011

5

Re: Сідлова точка

Chemist-i написав:

Будь-ласка

Там немає жодного "алгоритму знаходження максимумів і мінімумів в масиві, використовуючи метод  "сідлової точки".

6

Re: Сідлова точка

koala написав:
Chemist-i написав:

Будь-ласка

Там немає жодного "алгоритму знаходження максимумів і мінімумів в масиві, використовуючи метод  "сідлової точки".

так?
#include <stdio.h>

/********************************************************************/
#define MAX_WIDTH   5
#define MAX_HEIGHT  8

/********************************************************************/
int m[MAX_WIDTH][MAX_HEIGHT]= {
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
};

/********************************************************************/
int main( void ) {
    int i, j, val;
    int min_h[MAX_WIDTH], max_w[MAX_HEIGHT];

    for ( i= 0; i<MAX_WIDTH; i++ ) {
        val= m[i][0];
        for ( j= 1; j<MAX_HEIGHT; j++ ) {
            if ( m[i][j]<val ) { val= m[i][j]; }
        }
        min_h[i]= val;
    }
    for ( j= 0; j<MAX_HEIGHT; j++ ) {
        val= m[0][j];
        for ( i= 1; i<MAX_WIDTH; i++ ) {
            if ( m[i][j]>val ) { val= m[i][j]; }
        }
        max_w[j]= val;
    }
    for ( i= 0; i<MAX_WIDTH; i++ ) {
        for ( j= 0; j<MAX_HEIGHT; j++ ) {
            if ( m[i][j] == max_w[j] && m[i][j] == min_h[i] ) {
                printf( "m[%d][%d]=%d\n", i, j, m[i][j] );
            }
        }
    }
    return 0;
}

7

Re: Сідлова точка

Chemist-i написав:
koala написав:
Chemist-i написав:

Будь-ласка

Там немає жодного "алгоритму знаходження максимумів і мінімумів в масиві, використовуючи метод  "сідлової точки".

так?
#include <stdio.h>

/********************************************************************/
#define MAX_WIDTH   5
#define MAX_HEIGHT  8

/********************************************************************/
int m[MAX_WIDTH][MAX_HEIGHT]= {
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
};

/********************************************************************/
int main( void ) {
    int i, j, val;
    int min_h[MAX_WIDTH], max_w[MAX_HEIGHT];

    for ( i= 0; i<MAX_WIDTH; i++ ) {
        val= m[i][0];
        for ( j= 1; j<MAX_HEIGHT; j++ ) {
            if ( m[i][j]<val ) { val= m[i][j]; }
        }
        min_h[i]= val;
    }
    for ( j= 0; j<MAX_HEIGHT; j++ ) {
        val= m[0][j];
        for ( i= 1; i<MAX_WIDTH; i++ ) {
            if ( m[i][j]>val ) { val= m[i][j]; }
        }
        max_w[j]= val;
    }
    for ( i= 0; i<MAX_WIDTH; i++ ) {
        for ( j= 0; j<MAX_HEIGHT; j++ ) {
            if ( m[i][j] == max_w[j] && m[i][j] == min_h[i] ) {
                printf( "m[%d][%d]=%d\n", i, j, m[i][j] );
            }
        }
    }
    return 0;
}

Ні, це пошук сідлової точки. Ви читати не вмієте? Автор просить знайти мінімум і максимум за "методом сідлової точки", а не сідлову точку за допомогою мінімумів і максимумів.

8

Re: Сідлова точка

koala написав:
Chemist-i написав:
koala написав:

Там немає жодного "алгоритму знаходження максимумів і мінімумів в масиві, використовуючи метод  "сідлової точки".

так?

[code=cpp]

#include <stdio.h>


/********************************************************************/
#define MAX_WIDTH   5
#define MAX_HEIGHT  8


/********************************************************************/
int m[MAX_WIDTH][MAX_HEIGHT]= {
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
};


/********************************************************************/
int main( void ) {

int i, j, val;
int min_h[MAX_WIDTH], max_w[MAX_HEIGHT];


for ( i= 0; i<MAX_WIDTH; i++ ) {
    val= m[i][0];
    for ( j= 1; j<MAX_HEIGHT; j++ ) {
        if ( m[i][j]<val ) { val= m[i][j]; }
    }
    min_h[i]= val;
}

for ( j= 0; j<MAX_HEIGHT; j++ ) {
    val= m[0][j];
    for ( i= 1; i<MAX_WIDTH; i++ ) {
        if ( m[i][j]>val ) { val= m[i][j]; }
    }
    max_w[j]= val;
}

for ( i= 0; i<MAX_WIDTH; i++ ) {
    for ( j= 0; j<MAX_HEIGHT; j++ ) {
        if ( m[i][j] == max_w[j] && m[i][j] == min_h[i] ) {
            printf( "m[%d][%d]=%d\n", i, j, m[i][j] );
        }
    }
}

return 0;

}[/code]

Ні, це пошук сідлової точки. Ви читати не вмієте? Автор просить знайти мінімум і максимум за "методом сідлової точки", а не сідлову точку за допомогою мінімумів і максимумів.

Прихований текст

Тролль?

9

Re: Сідлова точка

Chemist-i написав:
Прихований текст

Тролль?

Прихований текст

Автор? Навряд чи, радше просто не розібрався в питанні.
Я? Ні, я хочу допомогти авторові розібратися.
Ви? Вам видніше.

10

Re: Сідлова точка

Моє питання полягало в знаходженні елемента масиву методом сідлової точки.
В універі нам сказали, що це алгоритм знаходження елемента масиву, який одночасно є найбільшим в рядку та найменшим в стопці. Якось так