시간복잡도
-
Vector Capacity를 1.5배씩 늘려주는 이유Programming/C++ 2021. 1. 5. 23:17
C++의 vector는 다양한 연산들이 존재한다 (아래 포스팅 참조) 2jinishappy.tistory.com/67 [STL] vector 생성자, 함수 및 iterator 사용법 C++에서 사용되는 벡터(vector)는 배열과 유사한 자료구조지만 자동 크기 조절과 객체의 추가 삭제를 제공한다 크기가 가변적이거나 객체의 추가 및 삭제가 자주 일어날 때, 동적인 상황에서 자주 2jinishappy.tistory.com 정적 array와 비교되는 vector의 가장 큰 장점은 stl 라이브러리 내에서 자동으로 크기를 조절해주고, element들의 추가 및 삭제가 굉장히 용이하다. 또한 다양한 멤버함수들을 제공해줘서 vector를 이용한 다양한 연산을 할 수 있다. 우리는 vector의 자동 크기 조절에 대..
-
시간복잡도 Big-O(빅 오) 표기법Algorithm 2020. 12. 30. 23:34
PS 사이트에서 문제를 풀 때, 알고리즘을 공부할 때 우리는 특정 알고리즘의 시간복잡도를 나타낸다. 보편적인 문제를 풀 때 시간복잡도가 O(N^3)만 넘어가도 '비효율적'인 알고리즘을 사용한다고 지적하기도 한다. 시간 복잡도를 계산할 때, 단순히 for문이 몇 번 중첩되어 있는지? 재귀함수를 몇 번 호출했는지?에 따라 계산하기도 하지만 알고리즘이 복잡해질 경우에는 제대로 된 시간복잡도를 구하지 못할 수 있다 또는 코드가 아닌 정의만 보고 시간복잡도를 분석해야할 때도 있다 그렇기 때문에 시간복잡도를 나타내는 표준적인 방법인 Big-O Notation에 대해 알아본다 시간복잡도: 알고리즘의 수행 시간을 분석하는 방법 특정 문제를 해결하는 알고리즘은 여러 개가 존재할 수 있다. 해당 포스팅에서 다룬 것 처럼,..