• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

  • Автор темы Автор темы Guest
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

В институте задали написать очень простую программу:
"В заданной целочисленной матрице A (N,M) определить разность между минимум и максимум по модулю элементами".
Естественно что алгоритм несложный и выглядит он примерно так:
Код:
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));


У меня вопрос, существует ли более оптимальный алгоритм (без тупого перебора элементов).
И еще если кто нибудь знает, что такое временая сложность алгоритма и как ее находить, тоже сюда пишите.
 
Судя по всему этот простой метод в "лоб" является самым оптимальным.
Только у тебя неточность:
В заданной целочисленной матрице A (N,M) определить разность между минимум и максимум по модулю элементами
если взять массив
Код:
-2 1  5
3 -6  1
то минимумом и максимумом по модулю будут |-1| и |-6| и результат -5, а по твоему алгортму |-6| и |5| => 1
 
час алгарытма n*n, але лепей нязробіш, калі не перабярэш усі элементы, дык не даведаешся дакладна які болей а які меней.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab