Tôi đã đọc rất nhiều bài viết về việc chọn bộ sưu tập chính xác để thực hiện cụ thể, và tôi hiểu rằng cuối cùng sẽ giảm xuống để đánh giá dữ liệu thực, nhưng trong khi tôi bận làm việc đó:Bộ sưu tập sửa đổi mục
Bộ sưu tập được sắp xếp nào trong C# cho phép sửa đổi một mục chứa? Tôi dường như không tìm thấy gì?
Đây có phải là do sửa đổi có thể sẽ được thực hiện dưới dạng xóa sau đó chèn lại, do đó thực hiện chức năng 'Sửa đổi' rõ ràng vô nghĩa?
Tôi cần bộ sưu tập (thư viện tùy chỉnh hoặc tiêu chuẩn), với các hoạt động sau được thực hiện trên đó.
- Insert - thường
- Remove - thường
- Sửa - rất thường xuyên
- yếu tố Chọn Lên trên X - mỗi khi bất kỳ ở trên xảy ra, và nhiều hơn nữa, đồng thời.
Hiện tại tôi đang sử dụng một SortedSet, vì nó cung cấp O (logn) chèn, nhưng tôi không rõ ràng về hiệu suất loại bỏ và cách sửa đổi tốt nhất một mục.
Bộ sưu tập có cần được sắp xếp mọi lúc không? Bạn sẽ đạt được một lợi ích hiệu suất rất lớn nếu bạn có thể áp dụng nhiều sửa đổi và sau đó sắp xếp một lần sau đó. –
@Evenhuis Thật không may, bởi vì nhiều 'khách hàng' sẽ yêu cầu danh sách này, và họ cần nó theo thứ tự sắp xếp mỗi lần thay đổi được thực hiện cho danh sách này. Hoặc ít nhất là yếu tố hàng đầu. – Vort3x
Chúng tôi đã sử dụng BST cân bằng trong khóa học cấu trúc dữ liệu của chúng tôi. Nó đã được khá nhanh, nhưng chúng tôi thực hiện nó trong C + +. Bạn có thể xem xét nó có thể. Đây là một nguồn thông tin tốt: http: //www.codeproject.com/Bài viết/68500/Cân bằng-nhị phân-Tìm kiếm-Cây-BST-Tìm kiếm-Xóa-Prin –