모든 프로그래머의 강점은 그의 지식에 있습니다. 네, 구글링을 잘하는 능력도 꼴찌는 아니지만 그럼에도 불구하고 개발자의 사고방식이 형성되는 기반이 되는 어느 정도의 지식이 있어야 합니다. 이 지식이 깊어질수록 프로그래머는 더 흥미로운 솔루션을 생각해낼 수 있습니다. 이러한 "기본"의 일부 중 하나는 데이터 구조와 알고리즘입니다. 이 방향으로 지식을 어떻게 확장할 수 있나요? 선택적으로, 추가 연구를 위한 내화 예비 및 기초가 될 지식이 있는 책을 찾으십시오. 나에게 그런 책은 Robert Laforet의 "Java Data Structures and Algorithms" 였습니다 .
누구를 위해
이 책의 독자는 매우 광범위한 사람들이 될 수 있습니다. 왜냐하면 이 책은 Java 언어의 구문을 막 마스터한 사람 과 현직 프로그래머 모두에게 유용하고 데이터 구조와 알고리즘의 기능을 더 깊이 이해하는 데 유용하기 때문입니다. .무엇에 대해서
이 책은 프로그래밍에서 데이터 구조와 알고리즘을 연구하고 사용하는 데 중점을 두고 있습니다. 데이터 구조가 데이터가 메모리에서 구성되는 방식을 결정하는 방법과 알고리즘이 이러한 구조에서 다양한 작업을 수행하는 방법을 독자에게 가르칠 것입니다. 좀 더 깊이 파고들어 이 책의 내용이 정확히 무엇인지 살펴보겠습니다.- 배열. 배열과 정렬된 배열의 삽입, 검색 및 삭제 작업을 자세히 다룹니다. 정렬된 배열과 정렬되지 않은 배열에 대한 선형 및 이진 검색 작업을 보여줍니다. 또한 O 구문이 무엇인지 배우게 됩니다.
- 정렬. 간단한 정렬 방법으로는 "버블 정렬", "선택 정렬", "삽입 정렬"의 세 가지가 고려됩니다. 책에서 당신은 어느 것이 가장 느리고 어느 것이 가장 단순한지 배울 것입니다.
- 스택과 큐. 스택, 큐, 우선순위 큐와 같은 데이터 구조와 그 효율성, Java에서의 구현을 고려합니다.
- 연결된 목록. 이 책에서는 이중 연결 목록과 이중 연결 목록, 그 효율성, 삽입, 조회 및 삭제 작업이 수행되는 방법에 대해 설명합니다. 반복자와 필요한 메소드도 다룹니다.
- 재귀. 재귀는 삼각수 및 계승 계산, 철자 바꾸기 구성, 재귀 이진 검색 수행, 하노이 탑 퍼즐 풀기, 병합 정렬 구현, 배낭 문제 해결과 같은 다양한 상황에서 고려됩니다.
- 사소한 정렬. 쉘 정렬, 빠른 정렬 및 기수 정렬, 해당 알고리즘, 효율성과 같은 보다 고급 방법이 고려됩니다.
- 이진 나무. 균형 잡힌 이진 검색 트리가 작동 방식, 삽입 및 삭제 작업, 다양한 유형의 순회, 최소 및 최대 검색, 후속 항목 검색이 고려됩니다. 허프만 코드도 다룰 것입니다.
- 빨간색과 검은색 나무. 우리는 균형 잡힌 나무의 가장 효과적인 품종 중 하나인 균형을 잡는 데 필요한 회전 및 색상 전환 작업을 고려합니다.
- 나무 2-3-4. 이 유형의 트리는 다중 경로 트리의 예로 설명되며 외부 데이터 저장에 사용되는 B-트리와의 작동 및 관계가 논의됩니다.
- 해시 테이블. 선형 및 2차 프로빙, 이중 해싱 및 체인 방법과 같은 해싱과 다양한 방법을 다룹니다. 또한 해싱을 사용하여 외부 파일 저장소를 구성하는 방법도 알아볼 수 있습니다.
- 피라미드. 이는 우선순위 큐를 효율적으로 구현하는 데 사용되는 특별한 유형의 트리입니다. 이 책은 삽입, 삭제, 재배열의 작동 메커니즘을 논의합니다. 또한 피라미드 순열이 무엇인지, 그리고 이를 Java에서 어떻게 구현할 수 있는지 배우게 됩니다.
- 그래프. 가중치 그래프와 비가중 그래프, 이를 검색하는 알고리즘, 최단 순회 경로를 찾는 데 사용되는 알고리즘이 제시됩니다.
워크샵 앱이란 무엇입니까?
워크샵 애플리케이션은 이러한 구조와 알고리즘을 시연하는 데 사용됩니다 . 애플리케이션은 브라우저에서 실행될 수 있는 Java 애플릿으로 설계되었습니다. 워크샵 애플리케이션은 알고리즘이나 데이터 구조의 작동 방식을 보여주는 그래픽 다이어그램을 만듭니다. 예를 들어, 오름차순으로 정렬된 열을 표시하도록 설계된 한 애플리케이션에서는 히스토그램의 버튼을 클릭할 때마다 다음 단계가 수행됩니다. 이 경우 해당 알고리즘에 관련된 변수의 값이 표시되어 코드가 어떻게 실행되는지 알 수 있습니다( 디버거 설명을 연상시키죠 ?).워크샵 다운로드 및 설치 방법
- 여기서 애플릿을 다운로드할 수 있습니다 .
- WorkshopApplets.ZIP을 클릭 하고 애플릿이 포함된 아카이브를 다운로드하세요.
- 애플릿을 이해하려면 이 항목 과 이에 대한 설명을 읽어보세요 .
책의 장점
- 읽기가 매우 쉽고, 많은 예가 거의 "손가락으로" 설명됩니다.
- 복잡한 수학 공식을 사용하지 않고도 많은 "고전적인" 것들에 눈을 뜨게 됩니다. 글쎄요, 거의 없어요 :)
- 예제는 Java로 작성되어 있지만 코드에서 발생하는 작업은 다음 텍스트와 코드 주석을 통해 매우 자세히 설명되어 있습니다. 따라서 코드 예제는 매우 간단하므로 모든 프로그래밍 언어 사용자가 읽을 수 있습니다. 거의 의사 코드처럼 읽습니다.
책의 단점
- "손가락에"설명에도 불구하고 공백이 있습니다. 정렬 배열을 설명하기 위해 저자는 축구 팀을 그렸지만 Shell 정렬은 실제로 거기에 설명되어 있지 않습니다. 나는 그것을 이해할 수 없었고 인터넷에서 그것에 대해 읽을 수 없었습니다.
- 일반적으로 이미지나 표에 오타가 있을 수 있습니다.
- 일부 코드는 상당히 오래되었습니다.
아날로그
나는 이 책이나 그 다음 책과 유사한 책을 추천합니다(계속 공부하고 싶은 사람들을 위해):- Robert Sedgwick의 "Java 알고리즘";
- Thomas Cormen의 "알고리즘: 구성 및 분석".
GO TO FULL VERSION