[정렬] sort
버블정렬, 선택정렬, 삽입정렬, 쉘정렬, 병합정렬, 퀵정렬, 힙정렬, 계수정렬, 기수정렬까지... 많은 정렬들을 직접 구현해봤지만, 결국 실전에서는 이것들을 일일이 구현할 순 없다. 물론, 다 외워서 할 수 있으면 정말 좋긴 할 것이다. 실전에서 만약 정렬이 필요하다면, #include sort(v.begin(), v.end()); stable_sort(v.begin(), v.end()); STL함수를 써야할 것이다. sort 여기 있는 sort함수는 introsort라는 하이브리드 기법을 썼다고 한다. 불안정한 quick sort가 아니라서 다행이다. 시간복잡도 O(NlogN)을 보장한다. stable_sort 또한 중복되는 key에서 각 key가 가진 다른 값도 정렬하고 싶을 때는 stable_sor..
2019. 9. 2.
vector - 효율성과 편의성이 높은 array
벡터의 구현 vector는 array인데, size, clear, push_back 등을 지원해주는 효율적이며 편의성이 높은 container이다. 1.vector는 array의 기본성질을 유지한다. (maintain the primitive array) a pointer variable to the block of allocated memory, capacity, 현재 저장된 item 수 2. deep-copy 제공, operator= 제공 destructor 제공 3. resize 제공, capacity를 바꿔주는 routine을 가진다. (reserve routine~) 4. operator[] 5. size, empty, clear back, pop_back, push_back 6. nested ..
2019. 6. 24.