자료구조 강의

자료구조 강의

(자료구조 강의) Chapter 03 - 알고리즘 성능 분석

첫 번째 강의에서 순차 탐색 알고리즘과 이진 탐색 알고리즘의 성능을 비교하기 위해 데이터 1,000,000개를 가지고 테스트 했습니다. 데이터를 탐색하는데 걸리는 시간이 바로 나와서 확인하기 편했지만 모든 코드에 테스트 코드를 붙여서 테스트를 하려니 번거롭습니다. 또한 다음과 같은 의문이 들어 정확한 비교, 분석이라고 하기 애매합니다. ❝ 데이터가 1,000,000개가 아니라 10,000,000개 일 때는 얼마나 차이가 나요? ❞ ❝ 탐색 데이터가 배열 첫 번째에 있으면 이진 탐색보다 선형 탐색이 더 빠른 거 아닌가요? ❞ 알고리즘을 정확하게 비교하는 방법 우리는 알고리즘을 비교하고 분석하는 방법 중 하나인 빅-오 표기법을 알아볼겁니다. 다른 방법은 빅-오메가, 빅-세타가 있는데 다음과 같은 특징을 가집..

자료구조 강의

(자료구조 강의) Chapter 02 - 자료구조와 알고리즘의 이해

우리가 지난 강의에서 살펴본 탐색 알고리즘에는 여러 가지가 있습니다. 또한 사용하는 자료구조에 따라 알고리즘이 달라지기도 합니다. 배열도 자료구조 중 하나입니다. 우리는 배열이라는 자료구조를 사용해서 선형 탐색, 이진 탐색 알고리즘을 적용시킨 것이죠. 자료구조는 크게 선형 구조와 비선형 구조로 나눌 수 있습니다. 여기서 배열은 리스트에 들어간다고 보시면 됩니다. 리스트는 선형 리스트와 연결 리스트로 나눌 수 있는데 연결 리스트에 대해서는 다음에 자세히 알아보도록 할게요. 자료구조가 정확히 뭐지? 보통 첫 프로그래밍 언어로 C언어를 선택했다면 그 다음엔 자료구조를 공부하는 분이 많을 겁니다. 저도 그랬습니다. 지난 강의에서도 자료구조 공부의 중요성을 얘기하고 주변에서도 자료구조를 꼭 배워야 한다고 합니다...

자료구조 강의

(자료구조 강의) Chapter 01 - 자료구조를 공부하는 이유

자료구조 꼭 배워야 할까? ❝ 자료구조 몰라도 프로그램 만드는 데 문제 없던데요? ❞ 네 맞아요, 자료구조를 몰라도 프로그램을 만드는 데 문제가 없어요. 어 그럼 안배워도 되냐구요? 나 혼자 쓰는 프로그램이나 처리할 데이터양이 적은 프로그램만 만들거라면 안배워도 됩니다. 하지만 우리는 개발자가 되고 싶은 거고, 기업에 들어가거나 창업을 해서 많은 사람들이 사용하고 싶어하는 프로그램을 만들고 싶잖아요. 기껏 만든 프로그램이 사용자가 한 번에 몰려서 서버가 터져버리거나 간단한 데이터 처리를 하는데 10초 이상이 걸리면 아무도 그 프로그램을 쓰고 싶지 않을거에요. 자료구조와 알고리즘을 적절히 활용하여 프로그램을 만들면 성능을 더 좋게 만들 수 있어요. 얼마나 차이가 나는데? 속도차이가 얼마나 나는지 직접 보면..

훈더덕
'자료구조 강의' 카테고리의 글 목록