thắc mắc Phỏng vấn Algo có đươc dùng List thay cho array c#?

Theo mình hiểu thì các ô nhớ chứa array phải liên tục trong bộ nhớ bác nhỉ ?

Còn list thì k cần, vì list chứa ref đến phần tử tiếp theo
Array là cấp phát bộ nhớ theo length. Cố định

List thì internal nó cũng là 1 cái array, length bí mật. Method add remove của list là SDK nó làm hộ

My fen đọc thêm cs101 đê
 
Array là cấp phát bộ nhớ theo length. Cố định

List thì internal nó cũng là 1 cái array, length bí mật. Method add remove của list là SDK nó làm hộ

My fen đọc thêm cs101 đê
List mà fen đang nói là dạng ArrayList (dynamic array) hay LinkedList, dynamic array vẫn export length ra đc mà, ví nó vẫn chỉ là array, còn nếu là LinkedList mà fen bảo có array internal thì fen hiểu sai bản chất r
 
ông thớt thử làm 1 bài dùng vòng for xóa 1 phần tử trong mảng mà k dùng thêm bộ nhớ = C# xem xử lý thế nào. Đừng quá lệ thuộc vào mấy cái built in của language.
 
Tác hại học thẳng code bằng JS 🙄 btw không bài algo nào cần thêm xóa 1 phần tử trong array đâu
 
ToList() là x2 space complexity rồi. Tưởng tượng cái array cả triệu element mà muốn thao tác gì lại tạo 1 list cả triệu element nữa sao dc. Chưa kể convert qua List thì thao tác truy xuất thành O(n), trong khi array là O(1). Ng ta test cái này cũng đúng thôi vì code tiện vài dòng nhưng lại ảnh hưởng performance rất lớn. Còn cái đoạn dưới là pbvm nha rồi
bác cho em hỏi là array và list khác nhau như nào trong c# ạ
 
mấy thím mới ra trường, hoặc chưa tiếp xúc nhiều với C# thì hay bị nhầm lẫn chỗ này.

List<T> trong c# mấy thím hay dùng thực ra nó chỉ là 1 lớp generic, bên trong sử dụng array để lưu dữ liệu, nên bản chất nó không phải là ctdl linked list mà thím học trên trường đâu.
Các thím có thể đọc source của thằng List<T>
ở link này.
 

Thống kê chủ đề

Ngày tạo
Donald Trump USA_No1,
Người trả lời cuối
leptepkt,
Trả lời
47
Lượt xem
4.380
Quay lại
Lên đầu trang