>  기사  >  웹 프론트엔드  >  배열 회전을 위한 블록 교환 알고리즘을 위한 JavaScript 프로그램

배열 회전을 위한 블록 교환 알고리즘을 위한 JavaScript 프로그램

王林
王林앞으로
2023-08-25 17:01:221083검색

用于数组旋转的块交换算法的 JavaScript 程序

배열 요소의 회전은 주어진 배열의 요소를 특정 위치 수만큼 왼쪽이나 오른쪽으로 이동하는 것을 의미합니다. 배열이 루프 형태라고 가정하고 가장자리 요소를 다른 쪽 끝으로 회전시킵니다. 배열 회전을 위한 블록 스왑 알고리즘은 배열의 요소를 주어진 양만큼 회전시키는 것을 의미하지만 회전을 사용하는 대신 교환 기술을 사용합니다. 재귀적이고 반복적인 방법을 구현하겠습니다.

들어가세요

으아악

출력

으아악

지침

교환 알고리즘을 사용하여 결과를 얻을 수 있으며, 다음 섹션에서 구현하겠습니다.

재귀적 방법

이 방법에서는 두 개의 배열이 있다고 가정합니다. 첫 번째 배열은 주어진 회전 수의 크기이고 다른 하나는 전체 크기에서 주어진 요소 수를 뺀 크기입니다.

첫 번째 배열의 크기가 작으면 첫 번째 배열의 요소를 교체하고 마지막 요소는 첫 번째 배열의 크기와 같고, 첫 번째 배열의 크기가 첫 번째 배열보다 크면 첫 번째 배열을 교체합니다. 주어진 배열의 두 번째 배열 크기와 동일한 요소입니다.

나머지 요소에 대해서는 스왑 배열을 변경하여 재귀 함수를 호출하겠습니다.

으아악

시간과 공간의 복잡성

위 코드의 시간 복잡도는 N입니다. 여기서 N은 주어진 배열의 크기입니다.

위 코드의 공간 복잡도는 N이지만 이는 재귀 스택이 차지하는 메모리를 고려한 경우에만 해당됩니다.

반복 방법

반복 방법은 재귀 방법과 동일합니다. 유일한 차이점은 재귀 호출을 사용하는 대신 while 루프에서 작업한다는 것입니다. 코드를 살펴보겠습니다.

으아악

시간과 공간의 복잡성

위 코드의 시간 복잡도는 N입니다. 여기서 N은 주어진 배열의 크기입니다.

위 코드의 공간 복잡도는 여기서 추가 공간을 사용하지 않기 때문에 1이거나 일정합니다.

결론

이 튜토리얼에서는 블록 스왑 알고리즘을 사용하여 주어진 회전 수만큼 배열을 회전하는 JavaScript 프로그램을 구현했습니다. 우리는 O(N) 시간 복잡도와 O(1) 공간 복잡도를 갖는 반복적 접근 방식을 사용하는 동시에 O(N) 공간 복잡도를 갖는 재귀 접근 방식을 사용하여 블록 교환 알고리즘을 구현했습니다.

위 내용은 배열 회전을 위한 블록 교환 알고리즘을 위한 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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