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).

rogp10 viết 10:56 ngày 01/10/2018

Tức là read-only à?

Nhưng mà để làm gì và vì sao?

Nhật Minh viết 11:07 ngày 01/10/2018

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.

rogp10 viết 11:03 ngày 01/10/2018

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.

Nhật Minh viết 10:56 ngày 01/10/2018

ừm, mình cứ tưởng có thuật toán vừa duyệt dslk vừa in ra được

*grab popcorn* viết 11:08 ngày 01/10/2018

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

rogp10 viết 10:59 ngày 01/10/2018

selection sort.

Đã 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.

*grab popcorn* viết 11:05 ngày 01/10/2018

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 )

rogp10 viết 11:04 ngày 01/10/2018

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

*grab popcorn* viết 11:00 ngày 01/10/2018

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à?

Bài liên quan
0