>  기사  >  웹 프론트엔드  >  정사각형 행렬에서 최대값과 최소값을 찾는 JavaScript 프로그램

정사각형 행렬에서 최대값과 최소값을 찾는 JavaScript 프로그램

WBOY
WBOY앞으로
2023-09-02 23:21:021349검색

JavaScript 程序求方阵中的最大值和最小值

가장 큰 요소와 가장 작은 요소를 찾으려면 비교 횟수와 비교 방법 중 가장 효율적인 방법(if-else 문을 사용하여 요소를 비교하는 방법 또는 비교 방법)에 중점을 두어야 합니다. if-else 문을 내장으로 사용하는 요소입니다. 전체 코드 구현과 설명을 살펴보겠습니다. 이 기사에서는 주어진 정사각형 행렬에 존재하는 가장 큰 요소와 가장 작은 요소를 계산하는 JavaScript 프로그램을 구현합니다.

문제 소개

이 질문은 간단하지만 더 깊이 파고들면 배울 가치가 있는 뛰어난 개념이 나올 것입니다.

이 문제에는 행렬에 존재하는 최대 및 최소 요소를 찾아야 하는 행렬이 제공됩니다. 예를 들어 행렬이 -

인 경우 으아아아

위 행렬에서 1은 최소 또는 최소 요소이고 9는 최대 또는 최대 요소라고 말할 수 있습니다.

코드 구현을 통해 이 문제를 해결하는 방법을 살펴보겠습니다. -

순진한 방법

이 방법에서는 모든 요소를 ​​한 번에 반복하고 현재 요소보다 큰지 확인합니다. 다음 단계를 따르세요 -

  • 먼저 다양한 행렬을 전달하고 결과를 얻는 함수를 만들어보겠습니다

  • 주어진 행렬에 대해 for 루프를 사용하여 반복하기 위해 행과 열을 가져옵니다.

  • 최소 및 최대 요소를 저장하기 위해 두 개의 변수를 만들고 행렬의 요소가 이 값보다 작거나 같다고 가정하고 최소 요소 1000000000으로 초기화하겠습니다.

  • 또한 행렬의 요소가 이 값보다 크거나 같다고 가정하여 최대 요소를 -1000000000으로 초기화합니다.

  • for 루프를 사용하여 행렬을 반복하고 각 인덱스에 대해 두 개의 if-else 조건을 사용합니다.

  • 필요한 비교를 통해 최대값과 최소값을 업데이트합니다.

으아아아

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(N*M)입니다. 여기서 N과 M은 각각 행과 열입니다. 또한 공간복잡도는 O(1)이다.

여기서 주요 문제는 시간 복잡도가 아니라 비교 횟수입니다. 위 코드에서는 각 인덱스에 대해 최소 및 최대 요소를 확인하기 때문에 N * M * 2 비교를 수행합니다.

더 효과적인 방법

이 방법은 대부분 위의 방법과 유사하지만, 비교 부분에서는 이제 일부 if-else 문을 업데이트하여 3/2 * N* M 비교를 수행하겠습니다. 코드를 살펴보겠습니다 -

으아아아

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(N*M)입니다. 여기서 N과 M은 각각 행과 열입니다. 또한 공간복잡도는 O(1)이다.

여기서 비교 횟수는 이전보다 적어서 이제 3/2 * (N*M)입니다.

결론

이 튜토리얼에서는 주어진 정사각형 행렬에 존재하는 최대 및 최소 요소를 계산하는 JavaScript 프로그램을 구현합니다. 주어진 행렬을 반복하고 각 요소를 답을 저장하는 변수와 비교합니다. 두 가지 기술이 논의됩니다. 하나는 2*N*M 비교이고 다른 하나는 3/2*N*M 비교이지만 두 방법 모두 동일한 공간 복잡도를 갖습니다.

위 내용은 정사각형 행렬에서 최대값과 최소값을 찾는 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제