for 루프 대신 while 루프를 사용하여 런타임 효율성을 위해 2D 배열 생성

수키 수키

길이 n의 2 차원 배열을 만드는 Jana (Java-Based Abstract Notation for Algorithms)에서 다음 코드를 만들었습니다.

fillMatrix(↕int matrix[1:n,1:n], ↓int n, ↓int a){

for(i=1…n){
    for(j=1…n){
    if(abs(↓(i-j))<=a){
        matrix[i,j]=1
    }else{
        matrix[i,j]=0
    }
    }
}
}

int abs(↓int i){
    if(i<0)
        return –i
    else
        return i
}

이 코드는 점근 적 런타임이 O (n ^ 2)입니다.

내 질문은 행렬의 각 요소가 호출시 0으로 초기화되었다고 가정하면 어떻게이 코드를 더 효율적으로 만들 수 있습니까?

도움을 주셔서 미리 감사드립니다!

그들은

값이 1 인 셀만 초기화하면된다고 가정합니다 (나머지 셀은 기본적으로 0입니다).

경우 a보다 훨씬 작은 n, 당신은 1 개 값을 얻을 세포를 초기화 할 수 있습니다 O(n + a*n)시간.

예를 들어 a == 0이면 행렬의 주 대각선의 n 개 셀을 설정하기 만하면됩니다 ((0,0), (1,0), ..., (n-1, n-1 ))에서 1.

a == 1이면 n주 대각선의 2*(n-1)+ 주 대각선에 인접한 대각선 을 설정해야합니다 .

...

A = C 경우 설정해야 O(n) + O(2c*n)하는 세포 1이다 O(n + c*n).

이 알고리즘을 구현하려면 O(n^2)루프를 2*a+1 O(n)루프 (각 관련 대각선에 대해 하나의 루프) 로 교체해야합니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PHP로 XML 구문 분석 (XML 요소에 대해 for 루프를 사용하여 다차원 배열 생성)

분류에서Dev

루프 효율성을위한 C ++ : 본문 대 사후 고려

분류에서Dev

while 루프를 통한 배열 유효성 검사

분류에서Dev

2D 배열을 반복하기 위해 for 루프를 사용할 때의 시간 복잡성은 무엇입니까?

분류에서Dev

주어진 2D 배열을 수정하기 위해 while 루프가 제대로 작동하도록 만드는 방법

분류에서Dev

응용 프로그램을 열 때 Microsoft Excel VBA 오류 런타임 1004로 인해 끝없는 오류 루프가 발생하여 Excel 사용을 방지 함

분류에서Dev

L-BFGS-B 효율성을 최적화하기 위해 대형 2D 데이터 프레임 벡터화

분류에서Dev

Do While 루프를 사용하여 배열 만들기 (입력 유효성 검사)

분류에서Dev

while 루프를 사용하여 함수 생성

분류에서Dev

while 루프를 사용하여 입력 문자열의 유효성을 검사하는 방법

분류에서Dev

파이썬에서 for 루프 또는 중첩 루프를 사용하여 여러 추가 배열의 데이터 프레임 생성

분류에서Dev

for 루프를 사용하여 열을 생성하는 방법

분류에서Dev

'for'루프를 사용하여 df의 각 열에 대한 Plotly 플롯 생성

분류에서Dev

Yii CDateTimeParser를 사용하여 하루의 마지막 시간에 대한 타임 스탬프 생성 (23:59:59)

분류에서Dev

do while 루프 자바 프로그래밍을 사용하여 게임 보드 배열 주위로 플레이어를 이동하는 구문 및 논리

분류에서Dev

하나의 루프 만 사용하여 중첩 배열 생성

분류에서Dev

Python : 2 열 출력에 대해 중첩 루프 대신 인덱스를 사용하는 For 루프

분류에서Dev

for 루프를 통해 데이터 프레임 사전 생성

분류에서Dev

while 루프를 사용하여 문자열 배열을 반복하고 Java 위치 얻기

분류에서Dev

for / while 조건에 대해 루프 내부 루프를 사용하여 행별로 테이블을 채 웁니다.

분류에서Dev

for 루프로 배열을 생성하여 시간을 효율적으로 확보하려면 어떻게해야합니까?

분류에서Dev

Php에서 필요한 배열을 생성하기 위해 for 루프를 얻을 수 없습니다.

분류에서Dev

루프를 사용하여 2D 배열에 값 할당

분류에서Dev

루프를 사용하여 런타임에 속성 설정의 현재 값을 가져 오는 방법

분류에서Dev

2D 배열을 1D 배열로 변환하여 데이터 프레임 생성

분류에서Dev

PHP를 사용하여 JSON 배열을 통해 루프

분류에서Dev

while 루프를 사용하여 난수를 생성하는 함수 반복

분류에서Dev

ggplot2에서 for 루프를 사용하여 목록 생성

분류에서Dev

while 루프를 사용하여 bash에서 열 범위 선택

Related 관련 기사

  1. 1

    PHP로 XML 구문 분석 (XML 요소에 대해 for 루프를 사용하여 다차원 배열 생성)

  2. 2

    루프 효율성을위한 C ++ : 본문 대 사후 고려

  3. 3

    while 루프를 통한 배열 유효성 검사

  4. 4

    2D 배열을 반복하기 위해 for 루프를 사용할 때의 시간 복잡성은 무엇입니까?

  5. 5

    주어진 2D 배열을 수정하기 위해 while 루프가 제대로 작동하도록 만드는 방법

  6. 6

    응용 프로그램을 열 때 Microsoft Excel VBA 오류 런타임 1004로 인해 끝없는 오류 루프가 발생하여 Excel 사용을 방지 함

  7. 7

    L-BFGS-B 효율성을 최적화하기 위해 대형 2D 데이터 프레임 벡터화

  8. 8

    Do While 루프를 사용하여 배열 만들기 (입력 유효성 검사)

  9. 9

    while 루프를 사용하여 함수 생성

  10. 10

    while 루프를 사용하여 입력 문자열의 유효성을 검사하는 방법

  11. 11

    파이썬에서 for 루프 또는 중첩 루프를 사용하여 여러 추가 배열의 데이터 프레임 생성

  12. 12

    for 루프를 사용하여 열을 생성하는 방법

  13. 13

    'for'루프를 사용하여 df의 각 열에 대한 Plotly 플롯 생성

  14. 14

    Yii CDateTimeParser를 사용하여 하루의 마지막 시간에 대한 타임 스탬프 생성 (23:59:59)

  15. 15

    do while 루프 자바 프로그래밍을 사용하여 게임 보드 배열 주위로 플레이어를 이동하는 구문 및 논리

  16. 16

    하나의 루프 만 사용하여 중첩 배열 생성

  17. 17

    Python : 2 열 출력에 대해 중첩 루프 대신 인덱스를 사용하는 For 루프

  18. 18

    for 루프를 통해 데이터 프레임 사전 생성

  19. 19

    while 루프를 사용하여 문자열 배열을 반복하고 Java 위치 얻기

  20. 20

    for / while 조건에 대해 루프 내부 루프를 사용하여 행별로 테이블을 채 웁니다.

  21. 21

    for 루프로 배열을 생성하여 시간을 효율적으로 확보하려면 어떻게해야합니까?

  22. 22

    Php에서 필요한 배열을 생성하기 위해 for 루프를 얻을 수 없습니다.

  23. 23

    루프를 사용하여 2D 배열에 값 할당

  24. 24

    루프를 사용하여 런타임에 속성 설정의 현재 값을 가져 오는 방법

  25. 25

    2D 배열을 1D 배열로 변환하여 데이터 프레임 생성

  26. 26

    PHP를 사용하여 JSON 배열을 통해 루프

  27. 27

    while 루프를 사용하여 난수를 생성하는 함수 반복

  28. 28

    ggplot2에서 for 루프를 사용하여 목록 생성

  29. 29

    while 루프를 사용하여 bash에서 열 범위 선택

뜨겁다태그

보관