>  기사  >  웹 프론트엔드  >  배열 요소의 빈도를 계산하는 JavaScript 프로그램

배열 요소의 빈도를 계산하는 JavaScript 프로그램

WBOY
WBOY앞으로
2023-09-21 08:01:031091검색

用于计算数组元素频率的 JavaScript 程序

빈도를 계산한다는 것은 배열의 요소가 주어진 배열에 나타나는 횟수를 계산해야 함을 의미합니다. 빈도를 얻기 위해 지도와 같은 내장 데이터 구조를 사용할 수도 있고, 배열 요소의 빈도를 얻기 위해 배열을 정렬할 수도 있습니다. 두 가지 방법에 대해 논의하고 하나씩 살펴보겠습니다 -

배열 정렬

이 방법에서는 배열을 정렬하고 현재 요소가 이전 요소와 동일한지 확인하고 현재 배열이 동일하지 않은 경우 이는 새 요소이고 개수가 변수가 될 때까지 이전 요소의 빈도입니다. we 이는 요소 수를 늘리는 데 사용됩니다.

방법

  • 먼저 내장된 정렬 방법을 사용하여 배열을 정렬하겠습니다.

  • 주어진 배열의 요소와 해당 주파수를 저장할 배열을 만듭니다.

  • 현재 요소의 발생 횟수를 저장하기 위해 변수 "count"를 생성합니다.

  • 우리는 배열을 반복하고 각 반복마다 현재 요소가 이전 요소와 같은지 확인합니다.

  • 현재 요소가 이전 요소와 같으면 카운트 값이 증가합니다.

  • 현재 요소가 이전 요소와 같지 않으면 이전 요소의 개수를 현재 요소의 빈도를 나타내는 배열의 키 쌍으로 저장합니다.

    李>
  • 또한 카운트 값을 1로 업데이트하겠습니다.

  • 배열을 반복한 후 정렬된 배열의 마지막 요소의 빈도는 저장되지 않고 루프가 종료되므로 저장합니다.

위 메소드를 구현한 코드를 보고 좀 더 나은 방법으로 추가하고 이해해 봅시다.

으아악

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(N*log(N))입니다. 왜냐하면 배열을 정렬했고 필요한 시간은 N*log(N)이고 배열을 한 번 순회했기 때문에 O( N ) 시간, 여기서 N은 주어진 배열에 존재하는 요소의 수입니다.

위 코드의 공간 복잡도는 추가 공간을 사용하지 않기 때문에 O(1)입니다. 그러나 주파수를 저장하려면 추가 공간이 있어야 하며 이는 O(N)입니다.

지도의 모든 요소가 사용되는 빈도

맵은 키 쌍 형태로 값을 저장하는 데이터 구조이며, 해당 데이터는 나중에 업데이트될 수 있습니다. 지도에 데이터를 추가하거나 업데이트하는 데는 로그 시간이 걸리지만 배열을 정렬할 필요가 없습니다. 즉, 이전 프로그램에서 했던 것처럼 배열을 변경할 필요가 없습니다. 먼저 방법을 살펴보고 코딩 부분으로 들어가겠습니다 -

방법

  • 먼저 새로운 키워드를 이용해 지도를 생성해보겠습니다.

  • 배열을 반복하고 각 요소를 확인하겠습니다.

  • 현재 요소가 맵에 존재하는 경우 현재 요소에 대해 저장된 값, 즉 빈도가 증가합니다.

  • 요소가 저장되지 않은 경우 이를 맵에 키로 추가하고 값 1을 지정합니다.

  • 배열을 반복한 후 맵에 저장된 값을 키-값 쌍으로 인쇄할 수 있습니다.

코드가 어떻게 구현되는지 살펴보았습니다. 이제 코드를 더 잘 이해하기 위해 구현 부분으로 이동하겠습니다. -

으아악

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(N*log(N))입니다. 여기서 N은 매핑 작동 방식에 따라 배열, 요소 또는 로그의 크기입니다. 위 코드는 O(N)의 공간 복잡도를 가지며 맵에 요소를 저장해야 합니다.

지도를 사용하여 주파수를 찾는 것은 주어진 배열을 변경할 필요가 없기 때문에 좋습니다.

결론

이 튜토리얼에서는 배열 요소의 빈도를 계산하는 JavaScript 프로그램을 소개합니다. 빈도를 계산한다는 것은 배열의 요소가 주어진 배열에 나타나는 횟수를 계산해야 함을 의미합니다. 우리는 주어진 문제를 해결하는 두 가지 방법을 살펴보았습니다. 하나는 내장된 정렬 기능을 사용하여 요소를 정렬하는 것이고, 다른 하나는 내장된 맵 데이터 구조를 사용하여 수행하는 것입니다.

위 내용은 배열 요소의 빈도를 계산하는 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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