시간 복잡도 썸네일형 리스트형 시간 복잡도 : O(1) O(1)은 상수 시간(constant time)을 의미합니다. 즉, 알고리즘이 처리하는 데이터의 크기와 상관없이 항상 일정한 시간 내에 실행됩니다. 간단한 예로, 크기가 n인 배열에서 특정 인덱스의 값을 조회하는 경우를 생각해보면, 이 작업은 O(1) 시간에 처리됩니다. 이는 배열의 크기와 상관없이 인덱스를 직접 참조하여 해당 위치의 값을 가져오기 때문입니다. 또 다른 예로, 해시 테이블을 사용하는 데이터 구조에서 key를 이용해 value를 조회하는 작업은 O(1) 시간에 처리됩니다. 이는 해시 함수를 이용해 key의 인덱스를 계산하고, 해당 인덱스의 값을 직접 참조하여 value를 가져오기 때문입니다. 즉, O(1)은 상수 시간으로 매우 빠르게 실행되는 알고리즘을 의미하며, 데이터의 크기가 커져도 알.. 더보기 HashMap과 시간 복잡도 자바 HashMap은 key-value 쌍으로 데이터를 저장하는 자료구조입니다. 각각의 key는 유일하며, 해당 key에 대한 value를 O(1)의 시간 복잡도로 검색하거나 삽입할 수 있습니다. HashMap은 내부적으로 해시 테이블(Hash table)을 사용하여 데이터를 저장하므로, 검색 및 삽입에 걸리는 시간 복잡도는 O(1)입니다. 이는 매우 빠르며, 대용량 데이터를 다룰 때 유용합니다. 하지만, 데이터가 많아지면 해시 충돌(Hash Collision)이 발생할 가능성이 높아집니다. 이 경우, 검색 및 삽입 시간 복잡도는 O(n)으로 증가할 수 있습니다. 따라서 충돌을 최소화하는 해시 함수를 사용하거나, 충돌이 발생했을 때도 O(1)의 시간 복잡도를 유지하는 개선된 해시 테이블을 사용하는 등의 .. 더보기 이전 1 다음