01/10/2018, 08:52
Sắp xếp trong Linked List
Mọi người cho mình hỏi ý tưởng để in ra cả thông tin của từng node trong DSLK theo thứ tự tăng dần(hoặc giảm dần) theo một yêu cầu nào đó của node, mà không cần sắp xếp lại danh sách ấy được không ạ? Mình cảm ơn. (Mình tra gg rồi nhưng toàn phải sắp xếp lại danh sách).
Bài liên quan
Tức là read-only à?
Nhưng mà để làm gì và vì sao?
Mình có 1 dslk chứ thông tin họ tên, mã lớp, mã sinh viên và điểm các kì của từng sinh viên. bầy giờ mình muốn in ra danh sách sinh viên có điểm trung bình các kỳ từ cao xuống thấp.
Thì sắp xếp thôi chứ làm sao
Nếu DSLK ban đầu read-only thì ghi hết pointer vào data ra mảng rồi sort. Lúc này không cần quan tâm đến cấu trúc lưu trữ nữa.
ừm, mình cứ tưởng có thuật toán vừa duyệt dslk vừa in ra được
Có chứ, selection sort.
Tuy nhiên sẽ phrai duyệt nhiều lần.
Nhanh hơn là đếm phân phối, nếu làm tròn đtb 3 chữ số sau dấu chấm thì ta có tối đa 10k record. Nhân 1000 lên và lưu và cộng dồn vào mảng với index tương ứng, sau đó in ra là được
Đã bảo ko sort rồi mà
Nếu đã sort thì nên xài natural merge sẽ phù hợp với DSLK hơn.
Nhưng đâu có sort đâu :~
In trực tiếp lúc tìm các phần tử nhỏ thứ 1,2, 3 luôn
(Ko biết vậy tính ko nhể, vì bạn ấy chỉ nói là DSLK phải ko được sắp xếp lại :v )
Như vậy viết code chắc oải lắm vì nếu yêu cầu như vậy thì DS là read-only (hay immutable gì gì đấy)
Phải có min1, min2… vậy thì dùng mảng pointer cho rồi
Chưa hiểu ý a rogp10 cho lắm :?
Nếu duyệt 2 vòng for với 1 biến phụ lưu giá trji min thứ n là được r mà?