1. 자료구조와 알고리즘?
- 자료 구조는 데이터의 효율적인 접근과 수정을 위해 데이터를 표현하는 방식으로,
알고리즘의 유용한 재료가 된다. 알고리즘은 어떠한 일을 처리하기 위해 정해진 절차나 방식을 표현한 것이다.
2. 자료구조의 종류
- 자료 구조는 '선형'과 '비선형'으로 구분된다.
선형 자료 구조에는 '리스트', '스택', '큐' 등이 있고,
비선형 자료 구조에는 '트리'와 '그래프' 등이 있다.
자료 구조를 제대로 이해해 적재적소에 적용하면 데이터를 효율적으로 송수신할 수 있고, 편리하게 관리할 수 있다.
많은 알고리즘 중에 자주 공부하는 알고리즘은 '정렬', '탐색'이다.
이 알고리즘은 데이터를 순서에 맞게 정렬하거나 찾는 것이다.
정렬 알고리즘에는 '버블 정렬', '병합 정렬', '퀵 정렬' 등이 있고, 탐색 알고리즘은 '트리 탐색'을 같이 공부하는 것이 좋다.
3. 알고리즘의 성능
- 알고리즘의 성능을 평가하는 데 '복잡도'라는 개념을 사용한다.
복잡도는 '점금 표기법(O,빅 오)'을 사용해 표기하는데, 점금 표기법은 어떤 함수의 입력값이 증가함에 따라
그 출력값이 얼마나 증가하는지를 표현하는 것이다.
알고리즘의 복잡도는 다시 '시간 복잡도'와 '공간 복잡도'로 구분된다.
시간 복잡도는 알고리즘이 실행되는데 걸리는 시간을 말하고,
공간 복잡도는 알고리즘이 사용하는 메모리의 양을 말한다.
시간 복잡도는 알고리즘이 처리하는 연산의 양에 비례하는데, 보통 알고리즘이 최악의 상황에서
처리할 수 있는 연산의 양을 말한다.
공간 복잡도는 단순히 메모리의 사용량을 표현한 것으로, 빅데이터의 활용도가 높아지면서
중요성이 강조되고 있는 지표이다. 대용량의 데이터를 한 번에 불러올 때 발생할 수 있는
메모리의 하드웨어 용량 부족에 대비하기 위한 지표이기도 하다.
4. 마무리하며
즉 프로그래밍을 활용한 모든 직군을 가려면 프로그래밍을 잘해야 한다.
프로그래밍을 잘한 다는 것은 결국 자료 구조와 알고리즘을 코드에
잘 녹여내어 가진 자원과 시간을 가장 효율적으로 사용할 수 있다는 것이다.
다시 말해, 프로그래밍 관련 직종 종사자나 지원자들은 자료구조와 알고리즘을
잘 다룰수록 더욱 큰 장점이 되는 것이다.
5. 알고리즘 공부 사이트
'IT지식 > 나머지' 카테고리의 다른 글
[정보] 위키독스 - 무료 e-book 사이트 (with 프로그래밍 독학) (0) | 2022.12.09 |
---|---|
[IT지식] 웹 프로그래밍과 HTTP 프로토콜 - 웹 클라이언트와 웹 서버 (2) | 2022.11.01 |
알고리즘 공부 게임처럼 하기 (Feat 백준, solved.ac) (7) | 2022.10.16 |
[IT지식] 알고리즘 문제를 풀어야 하는 이유 (6) | 2022.10.14 |
[IT지식]정규 표현식 - 기초 및 사용 예시 (3) | 2022.10.13 |