2011-03-31 45 views
5

Tôi hiện đang nửa chừng lớp học thuật toán và cấu trúc dữ liệu đầu tiên của mình. Thật không may, giáo viên của tôi không giỏi và cuốn sách trực tuyến chúng tôi sử dụng vô cùng mơ hồ trong phần mô tả (http://people.cs.vt.edu/~shaffer/Book/). Tôi đã quản lý để duy trì A cho đến nay, chủ yếu là do may mắn và thông thường, nhưng nó bắt đầu nhận được rất nhiều khó hơn bây giờ khi chúng ta đang xử lý các loại, tìm kiếm và các cấu trúc dữ liệu nâng cao hơn như đồ thị.Thuật toán và cấu trúc dữ liệu

Tôi đã tự hỏi liệu có bất kỳ tài nguyên trực tuyến nào có thể giúp tôi tìm hiểu chủ đề này tốt hơn mà bạn muốn giới thiệu hay không. Tôi hiểu tầm quan trọng chính của việc biết chủ đề này tốt, đặc biệt khi viết mã hiệu quả và cũng khi được phỏng vấn cho một công việc, vì vậy tôi mở mọi đề xuất sẽ giúp tôi tìm hiểu và hiểu thuật toán và cấu trúc dữ liệu tốt hơn.

+0

http://stackoverflow.com/questions/3665370/book-to-learn-advance-concepts-in-data-structures-and-algorithms Những aren' t nhất thiết phải nâng cao, hoặc là – dfb

Trả lời

0

Cuốn sách tốt nhất mà tôi từng thấy cho việc học thuật toán và cấu trúc dữ liệu là MIT Giới thiệu về Thuật toán. Nó tốt cho bạn bất kể trình độ của bạn, tốt cho người mới bắt đầu, người học trực tiếp và nâng cao.

1

Tự lấy Skiena The Algorithm Design Manual. Đó là một cuốn sách tuyệt vời và thực sự giúp tôi hiểu thuật toán và cấu trúc dữ liệu.

2

Bạn có thể sẽ không thích câu trả lời của tôi, nhưng tôi hy vọng rằng điều hiệu quả nhất bạn có thể làm là làm việc theo thái độ của bạn. Bạn thường tìm thấy những gì bạn đang tìm kiếm. Vì vậy, nếu bạn đang đối xử với người hướng dẫn của bạn như là tiêu chuẩn phụ và cuốn sách của bạn là vô giá trị; bạn sẽ nhận được rất ít trong số đó. Nếu bạn tìm kiếm điểm mạnh của người hướng dẫn của bạn và nhận được những gì bạn có thể từ cuốn sách, bạn sẽ đi xa. Tôi liếc qua văn bản của bạn và dường như nó không có vẻ mơ hồ với tôi. Chắc chắn xem xét các tài liệu tham khảo được cung cấp trong các câu trả lời khác, nhưng cũng tích cực về lớp học.

+3

Thái độ chắc chắn có thể là một vấn đề, nhưng anh chàng cũng có thể có một điểm. Tôi nhớ cấu trúc dữ liệu đầu tiên của tôi và lớp thuật toán (mà là một chủ đề khó nắm bắt lúc đầu). Giáo viên của tôi có một giọng Nga rất mạnh và trao cho chúng tôi những bài tập mà anh ấy đã dùng để cung cấp cho sinh viên 4-5 năm cao cấp hơn trong các nghiên cứu CS của họ như chúng tôi. Thật đau đớn. Tôi học được từ những cuốn sách và bạn học trong học kỳ đó, không phải từ giáo viên. –

+0

Tôi chắc chắn có thể thấy quan điểm của bạn. Tôi thường không phải là người đổ lỗi cho việc tôi làm trong lớp với giáo viên, nhưng chỉ là chủ đề này dường như đòi hỏi một số lượng lớn về giải thích sâu sắc, điều mà giáo sư của tôi dường như không làm. Điều này thường rời khỏi bản thân mình và hầu hết những người còn lại trong lớp đều bối rối. – lessthanjacob

0

Tôi đã tìm thấy các trang trình bày tại: http://www.heppenstall.ca/academics/doc/242/ rất hữu ích. Chúng bao gồm một loạt các cấu trúc dữ liệu và thuật toán cơ bản và bao gồm các hình ảnh có thể sử dụng để giúp hiểu những gì đang diễn ra.

Tôi không biết ai là người đầu tiên tạo ra các trang trình bày khác nhau hoặc có thể đang duy trì phiên bản mới nhất - họ dường như đã tìm được đường đến nhiều máy chủ của trường khác nhau và có sẵn ở định dạng PDF và PPT.

1

Cá nhân, tôi luôn tìm ra cách tốt nhất để học điều gì đó là cố gắng và xây dựng nó. Cho dù đó là một thuật toán, và mẫu thiết kế mới hay cấu trúc dữ liệu, quá trình tạo ra thứ đó trong mã luôn luôn là cách tôi đã học tốt nhất.

+0

Nhưng nếu tôi không có kinh nghiệm lập trình để làm điều đó thì sao? Tôi là một năm thứ hai Khoa học Máy tính lớn với một nắm bắt khá tốt trên C + + và C. Bạn có nghĩ rằng tôi vẫn sẽ có thể xây dựng một số trong những điều này? – lessthanjacob

+0

@SkankinJake ... kiểm tra liên kết của tôi ở trên ... Tôi đã có thể đọc cuốn sách đó mà không gặp bất kỳ khó khăn nào sau khi chỉ có một học kỳ của C++ ... và sau khi đọc nó, tôi đã có thể viết triển khai của riêng mình Cấu trúc dữ liệu STL mà không gặp nhiều khó khăn. Không phải là của tôi là tốt hơn so với của STL (Tôi vẫn đề nghị bạn sử dụng nếu các thùng chứa phải có sẵn), nhưng chỉ cần nói, bạn sẽ hiểu làm thế nào họ làm việc. Cuốn sách đặt trọng tâm nặng nề vào cấu trúc dữ liệu so với các thuật toán, vì vậy bạn có thể phải tìm các tài liệu bổ sung khác cho mục đích đó. – Jason

+0

Tôi chắc chắn sẽ đọc nó. Cảm ơn. – lessthanjacob

2

Tôi đặc biệt thích cuốn sách này: Data Structures with C++ Using STL bởi Ford và Topp.

Chúng bao gồm khá nhiều mã nguồn (tất cả có thể được tải xuống từ trang web của họ) và độc đáo giúp người đọc thực hiện thông qua việc triển khai thực hiện nhiều cấu trúc dữ liệu được thực hiện trong STL, cũng như một vài cấu trúc dữ liệu (như đồ thị) không có trong STL. Bạn sẽ hiểu rõ về thành phần nội bộ của từng cấu trúc dữ liệu từ nhiều kiểu dữ liệu cơ bản hơn, cũng như tham chiếu đủ chung mà bạn cần phải tự mình xây dựng, bạn sẽ có ý tưởng rất hay về các cấu trúc dữ liệu có thể được tạo và tạo ra từ các kiểu dữ liệu đơn giản hơn (nghĩa là các ý tưởng này có thể được chuyển đổi sang bất kỳ ngôn ngữ nào khác) và cách chúng được áp dụng trong các thiết lập trong thế giới thực.Nó không phải là một tham chiếu cho bản thân STL, vì nó là một tham chiếu về cách cấu trúc dữ liệu trong STL được thực hiện (mặc dù trong một hình thức đơn giản hơn ... bạn sẽ không phải lo lắng về các trình phân bổ , và nhiều phần phụ trợ khác trong mã STL có thể làm cho nó khó đọc và hiểu cho người mới bắt đầu).

Hope this helps,

Jason

Các vấn đề liên quan