Ứng dụng của cấu trúc dữ liệu và thuật toán tìm kiếm

Em đang ôn kiến thức để đi phỏng vấn, em phát hiện ra vấn đề là trong các project em đã làm trên trường ở các vị trí BE (nodejs, .net) và FE(reactjs, angular) em vẫn chưa thấy trường hợp nào mà em phải ứng dụng các cấu trúc dữ liệu hoặc các thuật toán tìm kiếm

  • Ở Be dữ liệu người dùng được lưu trữ trong database không phải các cấu trúc dữ liệu như (tree binary, graph…)
  • Với các thuật toán tìm kiếm (DFS, BFS…) thì dữ liệu không phải lưu ở tree binary hay graph nên không thể sử dụng mà thay đó bằng các câu truy vấn và dữ liệu trả về cũng là Array( mongodb) hoặc IEnumerable ( SQL server).
  • Với các biến thì em chỉ lưu bằng Array, Set hoặc List.

Vì thế cho em hỏi các trường hợp ứng dụng của các thuật toán trên trong thực tế, cụ thể là ở BE.

nếu bạn đã chia “frontend” và “backend” thì chắc giao tiếp với nhau thông qua api đúng không
vậy chắc hẳn dữ liêu request/response cũng phải có cấu trúc rồi còn gì
còn tìm kiếm thì bây giờ các thư viện/type IEnumerable cũng có hỗ trợ những hàm kiểu sort rồi, cũng không ai tự viết nữa, bạn chỉ cần hiểu cách sort (có thể viết ví dụ đơn giản như bài tập) là được

4 Likes

Ứng dụng không có nghĩa là ngồi viết lại từng dòng code hiện thực cái cấu trúc hay thuật toán kia.

Lấy ví dụ, bạn không hiểu array, set, hashtable, list khác nhau chỗ nào thì làm sao bạn có thể biết trường hợp nào dùng cái nào? Người ta có sẵn DFS với BFS, bạn không biết 2 cái này khác nhau ra sao, ưu nhược điểm từng thằng thì làm sao bạn biết chọn cái nào để gọi?

So sánh một cách khập khiễng: Bạn không cần biết cụ thể từng chi tiết của xe máy để bạn có thể chạy nó. Nhưng nếu bạn biết nguyên tắc động cơ hoạt động ra sao, hộp số nó có tác dụng gì, thông số nhông sên dĩa, tỉ số truyền… vân vân và mây mây thì chắc chắn bạn sẽ điều khiển, sử dụng chiếc xe tốt hơn N người chỉ biết lên xe và tăng ga. Quan trọng hơn là, khi xe có vấn đề, đem ra tiệm sửa cũng sẽ ít bị “chặt chém” hơn. Xa hơn nữa, nếu có điều kiện, bạn lại còn có thể độ chế/sản xuất chiếc xe theo ý mình.

5 Likes

vì bạn nói be lưu dữ liệu ở database >> cái hệ quản trị csdl sẽ là nơi quản lý, xử lý dữ liệu >> bạn tìm các sách về cách hoạt động và xử lý của hệ quản trị csdl là thấy nó có sử dụng ctdl và giải thuật, và bạn sẽ thấy mọi kiến thức về ctdl và giải thuật cơ bản và nâng cao đc nhà lập trình họ áp dụng vào ứng dụng của họ tốt đến thế nào, vì vậy nên mới đẻ ra nhiều sản phẩm như mysql, msql, postgresql, mỗi thằng tự tối ưu hệ thống họ, càng tối ưu càng chạy nhanh, xử lý nhanh, càng bán đc nhiều tiền, nếu học đh thì có môn hệ quản trị csdl sẽ giải thích kĩ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?