자료구조
- 컴퓨터의 동작원리가 궁금해, 컴퓨터공학과 전공인 자료구조를 수강했습니다.
- 4개월 간, 연결리스트, 스택, 큐, 트리, 그래프, MST, 다익스트라, 정렬 등의 원리를 이해하고 C언어로 직접 구현했습니다.
- 학습하면서 C언어 코드, 자료구조 동작원리를 이해하는 데 어려움을 느꼈습니다. C언어의 포인터, 이중포인터 부분을 추가로 학습했고, 자료구조 동작원리는 코드를 읽고 직접 구현 흐름을 따라가면서 이해했습니다.
- 연결리스트 최악의 시간복잡도를 줄이기위해 트리로 확장한 것처럼, 특정 구조가 생겨난 이유에 대해 생각해보게 되었고, 코드를 짤 때 시간복잡도를 고려해야한다는 점을 깨달았습니다.
자료구조 실험실
- 자료구조를 공부한 뒤, 궁금했던 것을 직접 실험했습니다. 실험한 코드와 실험으로 배운 점은 Github에 공개해놨습니다.
- 실험내용
- sorting : 시간 복잡도 O(nlogn)을 가지는 merge와 quick 중, 누가 더 빠를까? 랜덤 데이터, 정렬 데이터를 받는 상황으로 비교했습니다.
- BST vs BBST(AVL) : 가질 수 있는 값의 제한 vs 값에 트리 높이까지 제한 랜덤 데이터, 정렬 데이터를 받는 상황으로 비교했습니다.