Algorithm:
배열과 객체의 성능 평가
칠일오.
2023. 5. 15. 21:57
객체의 빅오
- 데이터의 정렬이 필요 없을 때
- 뻐른 접근 또는 입력과 제거가 필요할 때
자바스크립트는 객체 안에 저장할 때, 키의 값에 접근할 때 상수 시간이 걸린다. (객체는 뻐르다!!)
탐색은 선형 시간이 걸린다. 이는 객체 안에 n이 늘어날수록 그만큼 걸리는 시간도 늘어난다.
탐색이란? 어떤 특정한 정보가 어떤 값에 있는지 확인하는 것을 말한다.
배열의 빅오
- 데이터의 정렬이 필요할 때
배열의 데이터에 접근하는 것은 상수 시간(O(1))이 걸린다. 이는 인덱스 덕분이다. 입력과 제거는 어디에서 입력 하는지에 따라 달라진다.
배열 마지막에 추가(push)하면 O(1)의 시간이 걸리지만, 배열 앞에 추가하면 O(n)의 시간이 걸린다. 이는 인덱스의 순서를 새로 배정해야하기 때문이다.
즉, 배열 앞에 데이터를 추가하고 제거하는 행위는 최대한 피해야 한다. (효율성 측면에서)
탐색은 모든 요소를 각각 확인하기 때문에 배열의 크기만큼 탐색 시간이 걸린다. 즉, 선형 시간(O(n))이 걸린다.