컴퓨터공학 (Computer Science)/자료구조 | Data Structure
-
1. Introduction 희소행렬은 행렬의 값이 대부분 0인 행렬을 의미한다. 원 핫 인코딩 또는 마켓의 장바구니 데이터가 대표적으로 희소행렬로 표현된다. 다음 그림은 희소행렬의 예시인데, 이 경우 자료를 그대로 저장하는 것은 너무나도 비효율적이다. 이 글에서는 희소행렬의 효율적인 저장법에 대해 알아본다. 1) 연결리스트로 구현 가장 쉬운 형태의 구현이다. 필자가 희소행렬을 맨 처음 배웠을 때 생각한 구현 방법이다. N x N 크기의 행렬이 N개의 리스트 포인터를 가진 벡터로 표현된다. 다만 액세스 속도가 똥임으로 사용할 이유가 없다. 2) Coordinate list (COO) 행렬의 모든 값을 (row, col, val)의 형태를 가진 리스트로 표현한다. 원래 형태에 비해서 접근하는 속도가 느리긴..
희소행렬 (Sparse Matrix)1. Introduction 희소행렬은 행렬의 값이 대부분 0인 행렬을 의미한다. 원 핫 인코딩 또는 마켓의 장바구니 데이터가 대표적으로 희소행렬로 표현된다. 다음 그림은 희소행렬의 예시인데, 이 경우 자료를 그대로 저장하는 것은 너무나도 비효율적이다. 이 글에서는 희소행렬의 효율적인 저장법에 대해 알아본다. 1) 연결리스트로 구현 가장 쉬운 형태의 구현이다. 필자가 희소행렬을 맨 처음 배웠을 때 생각한 구현 방법이다. N x N 크기의 행렬이 N개의 리스트 포인터를 가진 벡터로 표현된다. 다만 액세스 속도가 똥임으로 사용할 이유가 없다. 2) Coordinate list (COO) 행렬의 모든 값을 (row, col, val)의 형태를 가진 리스트로 표현한다. 원래 형태에 비해서 접근하는 속도가 느리긴..
2020.05.19 -
자료구조란 데이터를 효율적으로 저장, 탐색, 추가, 삭제, 수정을 하기 위한 특별한 틀 또는 그것들을 배우는 학문을 의미한다. 자료구조란 학문이 굉장히 고전적이고 이렇다할 참신한 기법이 더 이상 나오기가 힘들지만 컴퓨터과학하면 빼먹을 수 없는 학문이다. 필자가 처음 자료구조를 배웠을 때, 자료구조만큼은 이 책이 바이블이라면서 교수님이 추천해주셨다. 바로 아래 이미지의 책이다. 굉장히 유명한 책이라서 한국어 번역판이 있는지도 모르고 그냥 원서로 사버렸다... 마지막으로 자료구조에 관한 문답 하나를 보이고 끝내겠다. Q: Why are data structures and algorithms so important in computer science? (왜 자료구조와 알고리즘이 컴퓨터과학에서 중요한가요?) A..
자료구조 개요자료구조란 데이터를 효율적으로 저장, 탐색, 추가, 삭제, 수정을 하기 위한 특별한 틀 또는 그것들을 배우는 학문을 의미한다. 자료구조란 학문이 굉장히 고전적이고 이렇다할 참신한 기법이 더 이상 나오기가 힘들지만 컴퓨터과학하면 빼먹을 수 없는 학문이다. 필자가 처음 자료구조를 배웠을 때, 자료구조만큼은 이 책이 바이블이라면서 교수님이 추천해주셨다. 바로 아래 이미지의 책이다. 굉장히 유명한 책이라서 한국어 번역판이 있는지도 모르고 그냥 원서로 사버렸다... 마지막으로 자료구조에 관한 문답 하나를 보이고 끝내겠다. Q: Why are data structures and algorithms so important in computer science? (왜 자료구조와 알고리즘이 컴퓨터과학에서 중요한가요?) A..
2020.05.17