Помогите реализовать алгоритм

Тема в разделе "C и С++ FAQ", создана пользователем Guest, 1 окт 2004.

Статус темы:
Закрыта.
  1. Guest

    Guest Гость

    В институте задали написать очень простую программу:
    "В заданной целочисленной матрице A (N,M) определить разность между минимум и максимум по модулю элементами".
    Естественно что алгоритм несложный и выглядит он примерно так:
    Код (Text):
    max=A[0][0];
    min=A[0][0];
    for (int i=0;i<=N;i++)
    {
    for(int j=0;j<=M;j++)
    x1=A[i][j];
    if(x1 >= max){max=x1;}
    if(x1 < min){min=x1;}


    }
    S=(abs(max)-abs(min));

    У меня вопрос, существует ли более оптимальный алгоритм (без тупого перебора элементов).
    И еще если кто нибудь знает, что такое временая сложность алгоритма и как ее находить, тоже сюда пишите.
     
  2. ????

    ???? Гость

    Судя по всему этот простой метод в "лоб" является самым оптимальным.
    Только у тебя неточность:
    если взять массив
    Код (Text):
    -2 1  5
    3 -6  1
    то минимумом и максимумом по модулю будут |-1| и |-6| и результат -5, а по твоему алгортму |-6| и |5| => 1
     
  3. Guest

    Guest Гость

    час алгарытма n*n, але лепей нязробіш, калі не перабярэш усі элементы, дык не даведаешся дакладна які болей а які меней.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей