예제를 사용한 자바 스크립트 단순 시간 복잡성

웹 개발을 발견하기 전에 저는 수학 교사였습니다. 따라서 시간 복잡성에 대한 질문과 그에 대한 아이디어가 100 % 쉬워야합니다. 아닐 수도 있습니다.

배우면서 좋은 예를 좋아해서 여기 console.log ()를 사용하여 하나를 모으기로했습니다. 또한 약간의 부수적이지만 내 어려움의 일부는 개인이 시간이 x 축에없는 시간 복잡도 그래프를 보여줄 때였습니다.

정렬 된 r 1에서 20까지의 숫자 광선을 사용할 것입니다. 먼저 배열이 고유한지 확인하겠습니다. 모든 코드에 console.log 줄을 포함했습니다.

아래의 경우 20 개의 요소가 있고 true를 반환하기 전에 아래 함수는 20 개의 인덱스를 출력합니다. 20의 입력과 20의 출력은 수학에서 분명히 선형 함수입니다. 여기서 시간 복잡도는 선형 O (n)입니다.

이제 첫 번째 본능은 배열을 통과하는 두 개의 4 개의 루프를 작성하는 것입니다. 이것은 내가 시작한 배열의 경우 console.log ()가 400 번되는 n²의 경우입니다.

이제 O (n)를 사용하는 검색과 O (log n)를 사용하는 이진 검색을 비교해 보겠습니다.

바이너리 검색을 사용하면 중간 지점을 확인한 다음 나머지 데이터의 절반을 살펴보고 다음 데이터 절반의 중간 지점을 찾을 때만 큼 실행할 필요가 없습니다.

마지막 요소 20을 찾으려면 여기 binarySearch의 console.log가 있습니다.

작은 데이터 세트를 살펴보면 console.logs 5 개 대 20 개는 그렇게 큰 문제가 아니지만 데이터 세트가 20 개가 넘는다는 사실을 고려해야합니다. 요소와 시간 복잡성이 중요한 부분입니다.