Q.정렬 알고리듬은 실제 성능은 시간 복잡도 외에도 데이터의 정렬 상태, 실행 환경(하드웨어, OS) 등 다른 요인과도 관계가 있는 것 같다. 특히, 캐시 활용도에 대한 내용이 많이 언급되었는데, 캐시 활용에 유리한 알고리듬의 특성은 무엇인지 궁금하다.A.시간 복잡도는 가이드라인일 뿐이고 실무에서는 그보다는 다른 요인들이 더 큰 영향을 미친다. (아주 느린 시간 복잡도가 아니라는 가정)캐시 활용에 유리한 알고리즘의 특성은 크게 두 가지이다.지역성(locality): 캐시는 CPU가 자주 접근하는 데이터를 압도적으로 빠르게 가져올 수 있도록 설계된 메모리 계층이다. 캐시는 데이터를 블록 단위로 가져오기 때문에, 인접한 데이터에 연속적으로 접근할 때 캐시 히트율이 높아진다. 따라서 캐시 활용에 유리한 알고리..
들어가며알고리듬을 공부했다면, swap 함수를 작성해본적이 있을 것이다. 정렬 알고리듬 또한 공부했을 것이다. 하지만, 공부했던 자료를 되돌아 보자. int 타입 숫자들만 정렬해보지 않았는가? 실제 상황에서는 다양한 타입에 대해 대응해야 할 것이다! 타입에 얽매이지 않는 프로그래밍을 Generic 프로그래밍이라 한다. Generic 프로그래밍은 코드의 재사용성을 높이고, 다양한 데이터 타입을 지원하며, 타입 안정성을 유지할 수 있게 한다. 이를 통해 우리는 하나의 함수나 클래스로 다양한 데이터 타입을 처리할 수 있다. 본 글에서는 특정 타입에 대한 swap 함수부터 시작하여, Generic Swap 함수를 구현하고, Generic Sort 함수까지의 구현하는 여정을 담았다. 같이 따라가보며, 구현하기 위..
- Total
- Today
- Yesterday
- 연관관계 편의 메서드
- tree
- core c++
- generic swap
- 백준
- Spring MVC
- Memory
- thread
- condition variable
- S1
- CPU
- 엔티티 설계 주의점
- pocu
- 이진탐색
- JPA
- 톰캣11
- OOP
- 개발 공부 자료
- C
- Dispatcher Servlet
- tomcat11
- PS
- Java
- 객체 변조 방어
- generic sort
- sleep lock
- servlet
- S4
- reader-writer lock
- 논문추천
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |