JavaRush /Java Blog /Random-KO /서평: “Java 데이터 구조 및 알고리즘”, Robert Laforet

서평: “Java 데이터 구조 및 알고리즘”, Robert Laforet

Random-KO 그룹에 게시되었습니다
모든 프로그래머의 강점은 그의 지식에 있습니다. 네, 구글링을 잘하는 능력도 꼴찌는 아니지만 그럼에도 불구하고 개발자의 사고방식이 형성되는 기반이 되는 어느 정도의 지식이 있어야 합니다. 이 지식이 깊어질수록 프로그래머는 더 흥미로운 솔루션을 생각해낼 수 있습니다. 서평: "Java 데이터 구조 및 알고리즘", Robert Laforet - 1이러한 "기본"의 일부 중 하나는 데이터 구조와 알고리즘입니다. 이 방향으로 지식을 어떻게 확장할 수 있나요? 선택적으로, 추가 연구를 위한 내화 예비 및 기초가 될 지식이 있는 책을 찾으십시오. 나에게 그런 책은 Robert Laforet의 "Java Data Structures and Algorithms" 였습니다 .서평: "Java 데이터 구조 및 알고리즘", Robert Laforet - 2

누구를 위해

이 책의 독자는 매우 광범위한 사람들이 될 수 있습니다. 왜냐하면 이 책은 Java 언어의 구문을 막 마스터한 사람 현직 프로그래머 모두에게 유용하고 데이터 구조와 알고리즘의 기능을 더 깊이 이해하는 데 유용하기 때문입니다. .

무엇에 대해서

이 책은 프로그래밍에서 데이터 구조와 알고리즘을 연구하고 사용하는 데 중점을 두고 있습니다. 데이터 구조가 데이터가 메모리에서 구성되는 방식을 결정하는 방법과 알고리즘이 이러한 구조에서 다양한 작업을 수행하는 방법을 독자에게 가르칠 것입니다. 좀 더 깊이 파고들어 이 책의 내용이 정확히 무엇인지 살펴보겠습니다.
  1. 배열. 배열과 정렬된 배열의 삽입, 검색 및 삭제 작업을 자세히 다룹니다. 정렬된 배열과 정렬되지 않은 배열에 대한 선형 및 이진 검색 작업을 보여줍니다. 또한 O 구문이 무엇인지 배우게 됩니다.
  2. 정렬. 간단한 정렬 방법으로는 "버블 정렬", "선택 정렬", "삽입 정렬"의 세 가지가 고려됩니다. 책에서 당신은 어느 것이 가장 느리고 어느 것이 가장 단순한지 배울 것입니다.
  3. 스택과 큐. 스택, 큐, 우선순위 큐와 같은 데이터 구조와 그 효율성, Java에서의 구현을 고려합니다.
  4. 연결된 목록. 이 책에서는 이중 연결 목록과 이중 연결 목록, 그 효율성, 삽입, 조회 및 삭제 작업이 수행되는 방법에 대해 설명합니다. 반복자와 필요한 메소드도 다룹니다.
  5. 재귀. 재귀는 삼각수 및 계승 계산, 철자 바꾸기 구성, 재귀 이진 검색 수행, 하노이 탑 퍼즐 풀기, 병합 정렬 구현, 배낭 문제 해결과 같은 다양한 상황에서 고려됩니다.
  6. 사소한 정렬. 쉘 정렬, 빠른 정렬 및 기수 정렬, 해당 알고리즘, 효율성과 같은 보다 고급 방법이 고려됩니다.
  7. 이진 나무. 균형 잡힌 이진 검색 트리가 작동 방식, 삽입 및 삭제 작업, 다양한 유형의 순회, 최소 및 최대 검색, 후속 항목 검색이 고려됩니다. 허프만 코드도 다룰 것입니다.
  8. 빨간색과 검은색 나무. 우리는 균형 잡힌 나무의 가장 효과적인 품종 중 하나인 균형을 잡는 데 필요한 회전 및 색상 전환 작업을 고려합니다.
  9. 나무 2-3-4. 이 유형의 트리는 다중 경로 트리의 예로 설명되며 외부 데이터 저장에 사용되는 B-트리와의 작동 및 관계가 논의됩니다.
  10. 해시 테이블. 선형 및 2차 프로빙, ​​이중 해싱 및 체인 방법과 같은 해싱과 다양한 방법을 다룹니다. 또한 해싱을 사용하여 외부 파일 저장소를 구성하는 방법도 알아볼 수 있습니다.
  11. 피라미드. 이는 우선순위 큐를 효율적으로 구현하는 데 사용되는 특별한 유형의 트리입니다. 이 책은 삽입, 삭제, 재배열의 작동 메커니즘을 논의합니다. 또한 피라미드 순열이 무엇인지, 그리고 이를 Java에서 어떻게 구현할 수 있는지 배우게 됩니다.
  12. 그래프. 가중치 그래프와 비가중 그래프, 이를 검색하는 알고리즘, 최단 순회 경로를 찾는 데 사용되는 알고리즘이 제시됩니다.
더 명확하게 하기 위해 각 장에서는 문제의 데이터 구조에 대한 자체 구현을 제공합니다. 예를 들어, 이것이 단일 연결 리스트인 경우 설명된 기능을 구현하는 클래스의 예가 제공됩니다. 책의 마지막 장은 이전 장에서 얻은 지식을 바탕으로 모든 지식을 하나의 그림으로 모으기 시작합니다. 예를 들어, 어떤 상황에서 어떤 데이터 구조를 사용할지에 대한 아이디어를 명확하게 형성할 수 있습니다. 서평: "Java 데이터 구조 및 알고리즘", Robert Laforet - 3각 장의 끝 부분에는 작은 연습 문제도 있습니다. 그 중 일부는 Workshop 앱을 사용하여 작업하는 것과 관련된 반면, 일부는 코드에서 직접 작은 작업을 제공합니다.

워크샵 앱이란 무엇입니까?

워크샵 애플리케이션은 이러한 구조와 알고리즘을 시연하는 데 사용됩니다 . 애플리케이션은 브라우저에서 실행될 수 있는 Java 애플릿으로 설계되었습니다. 워크샵 애플리케이션은 알고리즘이나 데이터 구조의 작동 방식을 보여주는 그래픽 다이어그램을 만듭니다. 예를 들어, 오름차순으로 정렬된 열을 표시하도록 설계된 한 애플리케이션에서는 히스토그램의 버튼을 클릭할 때마다 다음 단계가 수행됩니다. 이 경우 해당 알고리즘에 관련된 변수의 값이 표시되어 코드가 어떻게 실행되는지 알 수 있습니다( 디버거 설명을 연상시키죠 ?).

워크샵 다운로드 및 설치 방법

  1. 여기서 애플릿을 다운로드할 수 있습니다 . Рецензия на книгу: «Структуры данных и алгоритмы Java», Роберт Лафоре - 4
  2. WorkshopApplets.ZIP을 클릭 하고 애플릿이 포함된 아카이브를 다운로드하세요.
  3. 애플릿을 이해하려면 이 항목 과 이에 대한 설명을 읽어보세요 .

책의 장점

  • 읽기가 매우 쉽고, 많은 예가 거의 "손가락으로" 설명됩니다.
  • 복잡한 수학 공식을 사용하지 않고도 많은 "고전적인" 것들에 눈을 뜨게 됩니다. 글쎄요, 거의 없어요 :)
  • 예제는 Java로 작성되어 있지만 코드에서 발생하는 작업은 다음 텍스트와 코드 주석을 통해 매우 자세히 설명되어 있습니다. 따라서 코드 예제는 매우 간단하므로 모든 프로그래밍 언어 사용자가 읽을 수 있습니다. 거의 의사 코드처럼 읽습니다.

책의 단점

  • "손가락에"설명에도 불구하고 공백이 있습니다. 정렬 배열을 설명하기 위해 저자는 축구 팀을 그렸지만 Shell 정렬은 실제로 거기에 설명되어 있지 않습니다. 나는 그것을 이해할 수 없었고 인터넷에서 그것에 대해 읽을 수 없었습니다.
  • 일반적으로 이미지나 표에 오타가 있을 수 있습니다.
  • 일부 코드는 상당히 오래되었습니다.

아날로그

나는 이 책이나 그 다음 책과 유사한 책을 추천합니다(계속 공부하고 싶은 사람들을 위해):
  • Robert Sedgwick의 "Java 알고리즘";
  • Thomas Cormen의 "알고리즘: 구성 및 분석".

결론

이 책에는 단점이 거의 없으므로 읽을 가치가 있습니다. 다양한 정렬, 배열, 트리, 컬렉션, 그래프 등과 같은 많은 기본적이고 기본적인 주제를 명확하게 설명합니다. 이 책은 Java 와 강하게 연관되어 있지 않기 때문에 이 책을 공부하면서 얻은 지식 기반은 다른 프로그래밍 언어에도 유용할 것입니다. 개발자라면 반드시 읽어야 합니다.Рецензия на книгу: «Структуры данных и алгоритмы Java», Роберт Лафоре - 6
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION