학습 알고리즘 및 데이터 구조 기초
데이터 구조에 대한 어려운 문제 와 연습 문제 가 많은 책이나 사이트를 추천 해 주실 수 있습니까 ?
저는 이미 프로젝트 오일러 질문에 답하고 있지만이 질문은 흥미롭지 만 흔하지 않은 알고리즘에 관한 것입니다. 나는 단순한 나무조차 거의 사용하지 않았습니다. 아마도 다음과 같은 운동이있는 사이트가있을 수 있습니다 : 헤이, 이것을 계산해야합니다 : .... 나무를 사용하십시오. 이제 지퍼를 사용하십시오. C (Haskell, Lisp, Pascal 또는 Fortress go) 솔루션을 업로드하십시오. 오, 솔루션이 너무 느립니다!
자기 교육은 매우 어렵고 매우 일반적이고 기본적인 것을 배우려고합니다 . 코스에 참석하지 않고 어떻게 도와 줄 수 있습니까?
Cormen, Leiserson, Rivest 및 Stein의 알고리즘 소개, 제 3 판 은 알고리즘과 데이터 구조에 대한 좋은 소개입니다. 각 장의 끝에는 많은 연습이 있습니다. 대부분은 단순하지만 더 어려운 것이 있습니다.
NPTEL 유튜브 채널 에서 NPTel (National Program on Technology Enhanced Learning)의 비디오 강의 . 이는 7 개의 IIT와 인도의 IISc Bangalore가 수행하고 있으며 MHRD (인도 정부)가 자금을 지원합니다.
더 많은 엔지니어링 강의 .
멋진 무료 eBook —« 데이터 구조 및 알고리즘 ». 의사 코드 및 명시 적 형식의 공통 알고리즘 구현을 포함합니다. 게다가, 아주 훌륭하고 이해하기 쉬운 계획과 그래픽.
심지어 Jon Skeet도 그의 블로그에서 그것을 언급했습니다 . :-)
또한이 책은 100 페이지 미만의 책입니다 (알다시피 많은 프로그래머 가 일부 책을 읽지 않습니다 ).
이것은 이 중복 될 수 있습니다.
여기 MIT 공개 코스웨어 사이트를 추천합니다 . 페이지 아래에있는 "전기 공학 및 컴퓨터 과학"섹션에 알고리즘 과정이 있습니다.
6.006 - Introduction to Algorithms
6.046J - Introduction to Algorithms (SMA 5503)
후자를 추천합니다. 자료는 사이트에 있습니다. 비디오는 아마도 여기 YouTube 에서 가장 잘 액세스 할 수 있습니다 . "mit 알고리즘"을 검색 하십시오 . 교과서 도 존중한다. 세 번째 버전이 방금 나왔고 두 번째 버전이 코스와 일치합니다. 초판은 또한 Dr Dobbs Algorithms and Data Structures CD ROM의 일부로 포함되었습니다 .
Niklaus Wirth는 그의 개인 사이트 에서 다운로드 할 수있는 Algorithms and Data Structures 책을 가지고 있습니다 . 나는 Modula 2 인쇄 버전을 가지고 있으며 Cormen (또는 aho hopcroft ullman 등)을 대신하지는 않지만 가지고 있으면 좋은 책입니다.
앞서 언급 한 Cormen, Leiserson 및 Rivest 외에도 Peter Brass의 새로운 책 "Advanced Data Structures"도 있습니다. C에서 비교적보기 흉한 예제 코드를 가지고 있고 저자는 성능에 대해 다소 열광적이지만 (예를 들어 그는 재귀를 사용하지 않음) 그 책의 이론적 내용은 훌륭하고 독특하며 Cormen과 거의 교차하지 않습니다. 나는 그것이 고전이 될 것으로 기대합니다.
연습을하고 싶다면 http://www.topcoder.com을 볼 수 있습니다 . 그들은 alorithm 챌린지를 제안합니다.
http://www.youtube.com/watch?v=QMV45tHCYNI
CS 61B : 데이터 구조-2006 년 가을
강사 : Jonathan Shewchuk
선형 목록, 큐, 트리 및 기타 연결된 구조를 포함한 기본 동적 데이터 구조 배열 문자열 및 해시 테이블. 스토리지 관리. 소프트웨어 공학의 기본 원리. 추상 데이터 유형. 정렬 및 검색을위한 알고리즘. 자바 프로그래밍 언어를 소개합니다.
또한 알고리즘에 대한이 책을 읽을 수 있습니다.
http://www.amazon.com/Data-Structures-Algorithms-Made-Easy/dp/1466304162
알고리즘 학습을위한 계몽적인 대안을 원한다면 Rabhi F., Lapalme G. Algorithms .. 함수형 프로그래밍 접근 방식을 시도해 볼 수 있습니다 .
저자는 Haskell을 구현 언어로 사용하여 함수형 프로그래밍 컨텍스트를 사용하여 알고리즘을 가르치는 더 전통적인 방법에 도전합니다. 이것은 프로그래머가 알고리즘 자체를 더 빨리 이해하고 그 이해를 사용하여 대체 솔루션을 탐색 할 수 있도록하는 더 작고 명확하며 우아한 프로그램으로 이어집니다. 알고리즘의 수학적 속성보다는 프로그램 개발에 중점을두고,이 책은 다른 언어 패러다임으로 쉽게 옮길 수있는 독자 문제 해결 능력을 개발하기 위해 일련의 실용적인 프로그래밍 예제를 사용합니다.
(어려운) 연습 문제가있는 사이트의 경우 항상 해결하려고 시도 할 수 있습니다. spoj .
마지막에 연습 문제가있는 좋은 교과서가 가장 좋은 방법 인 것 같습니다.
Cormen, Leiserson, Rivest 및 Stein 의 정말 좋은 교과서 Introduction to Algorithms, Third Edition에 추가로, MIT에서 Leiserson이 제공 한 온라인 강의 비디오 를 시청하는 것이 좋습니다 . 책과 강의가 있다면 마치 MIT에서 공부하는 것 같아요 ;-)
http://videolectures.net/mit6046jf05_introduction_algorithms/
참조 URL : https://stackoverflow.com/questions/2301555/learning-algorithms-and-data-structures-fundamentals
'Programing' 카테고리의 다른 글
“svn update -r”에 해당하는 git은 무엇입니까? (0) | 2021.01.08 |
---|---|
boost :: shared_ptr이있는 NULL 포인터? (0) | 2021.01.08 |
C # if-null-then-null 식 (0) | 2021.01.08 |
bash 스크립트에서 control + c를 보내는 방법은 무엇입니까? (0) | 2021.01.08 |
localStorage에서 삭제 : delete 또는 .removeItem을 사용해야합니까? (0) | 2021.01.08 |