JavaScript의 Big-O 복잡성에 대한 Edison의 게시물을 적극 추천합니다. 본 주제에 관한 기사 중 가장 친근한 기사입니다.
여기서는 플로우차트를 통해 Big-O 시간 복잡도를 시각화하면서 Edison의 요점을 참고하겠습니다.
대수 시간
시간 복잡도를 시각적으로 이해하는 방법은 반복자(예: i*2 )를 보고 함수에 얼마나 많은 루프가 있는지 살펴보는 것입니다.
선형시간
선형 시간과 로그 시간은 비슷해 보이지만 루프의 조건으로 인해 출력이 다릅니다. exampleLogarithmic(100)은 1, 2, 4, 8, 16, 32, 64를 반환하는 반면 exampleLinear(100)는 단순히 100 미만의 모든 양의 정수를 반복합니다.
2차 시간
루프 수는 n이 증가하는 지수와 일치합니다. 시간 복잡도가 증가함에 따라 문자 그대로 함수가 더 커지는 것을 볼 수 있습니다.
입방시간
이것이 시간 복잡도를 이해하는 유일한 방법은 아니지만, 시간 복잡도가 증가함에 따라 함수가 더 길어지는 것을 문자 그대로 확인하는 것은 정말 도움이 됩니다. 때로는 흑백으로 작성된 코드가
블록은 시각적 학습자에게 요점을 전달하지 못합니다.이제 퀴즈를 내보겠습니다. 이 함수의 시간 복잡도는 얼마입니까?
생각해 보세요...
선형적입니다! 루프가 하나 있고 반복자로 인해 루프가 정수를 건너뛰지 않기 때문에 알 수 있습니다.이 함수의 시간 복잡도는 얼마입니까?
자신을 의심하지 마십시오. 첫 번째 예와는 조금 다르지만 선형 시간 복잡도를 갖습니다.이 함수의 시간 복잡도는 얼마입니까?
여기서 패턴을 볼 수 있습니다. 선형적입니다!이제 제 논리를 따라오셨다면 이것은 까다로운 질문일 수도 있습니다.
지수 n을 나타내는 루프의 수는 으로 올라간다고 했습니다. 그렇다면 이것이 2차가 아닌 선형 시간 복잡도를 갖는 이유는 무엇입니까?
다른 for 루프 내부에 for 루프가 표시되면 2차 시간 복잡도가 발생합니다. 그러나 다른 for 루프 뒤에 실행되는 하나의 for 루프는 2차가 아니라 선형 시간 복잡도를 갖습니다.
그럼 이 함수의 시간복잡도는 얼마나 되나요?
여기에는 까다로운 것이 없습니다. 이는 2차 시간 복잡도를 갖습니다.이제 마지막 질문인 다른 모든 질문에 대한 질문입니다. 이 함수의 시간 복잡도는 얼마입니까?
for 루프의 조건과 루프의 개수를 살펴보시기 바랍니다. 이는 루프 조건 i이 게시물의 이미지는 내 앱으로 생성되었으며, 개발 과정은 다른 게시물에서 설명했습니다.
[
Lighthouse에서 100점을 얻는 방법
엔더 미니야드 ・ Aug 30 '20 ・ 2분 읽기
webperf#속도#javascript#webdev
](/ender_minyard/how-i-got-100-on-lighthouse-2icd)
위 내용은 Big O 표기법: 순서도를 사용한 시간 복잡도 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!