[JAVA] O(n) vs O(log n)
![[JAVA] O(n) vs O(log n)](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1738492027198%2F93284065-0a23-4b25-80dd-1cb665f18f7e.png&w=3840&q=75)
목표 : O(n)과 O(log n)의 성능 차이를 실생활 예시를 들어 확인하고, 데이터의 크기가 1백만 개일 때 각각 대략 몇 번의 연산이 필요한지 비교하기.
(사진 출처 : https://cordcat.tistory.com/75)

1️⃣ O(n)
선형 시간이다. 데이터에 비례하여 시간이 늘어난다.
실생활 예시 : 책이 정렬되지 않은 도서관에서 찾고 싶은 책을 하나하나 비교하며 찾을때
데이터 크기 1000000일때 : 최악의 경우 1000000번 확인해야 할 수 있다.
2️⃣ O(log n)
단순 순환이 아닌 1/2씩 줄여가며 탐색한다.
실생활 예시 : 제목순으로 책이 정렬된 도서관에서 특정 책을 찾을 때, 특정 책의 제목이 중간에서 앞인지 뒤인지 확인한다. 앞일 경우, 뒷부분은 버리고 나머지에서 해당 절차를 반복한다.
데이터 크기 1000000일때 : 약 20번만 확인해도 된다.
⚡ 정리
O(n)
선형 시간, 데이터에 비례하여 시간 늘어남
O(log n)
1/2씩 줄여가며 탐색
![[Spring] N+1문제 발생과 분석](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1756727965704%2F8c24d83c-1a9e-4b4d-b733-c130243cbc6b.png&w=3840&q=75)

![[Project] 날씨에 맞는 옷 추천 서비스 : 지그재그 크롤링 여정 기록 (1) ChromeDriver를 EC2에 설치하기](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1753843082352%2Fc2452b33-97a4-4148-8ba4-750e5eee6aff.png&w=3840&q=75)
![[Project] 날씨에 맞는 옷 추천 프로젝트: Selenium은 정말 필요한 선택이었을까? - 크롤링 삽질 기록](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1753343114273%2Fb32cc35e-a2e6-4085-a132-26c72f8792d9.png&w=3840&q=75)
![[Spring] @Cacheable, @CachePut, @CacheEvict](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1749265456525%2F51b97bad-f86e-4f0f-9b33-77eaa733176f.png&w=3840&q=75)