1 [Lời giải]Mẫu sắp xếp thành dãy không giảm n bản ghi Tue May 31, 2011 9:06 pm
Admin
Quản trị viên
Cho dãy có n bản ghi {X(1),...,X(n) trong mỗi bản ghi đều có trường dữ liệu k nhận 1 trong 3 giá trị {1, 2, 3}
Xây dựng thuật toán thuộc O(n) để sắp xếp X thành dãy không giảm theo k.
[You must be registered and logged in to see this image.]
Lời giải của Phan Thị Hải:
Proc SX (X: Dãy);
1) i = 1; j = n;
2). WHILE i ≤ j DO
a)WHILE ((i ≤ j) & X(i).k = 1) DO i = i + 1;
b)WHILE ((i ≤ j) & X(i).k ≠ 1) DO j = j - 1;
c) IF i < j THEN swap (Xi, Xj);
3) j = n;
4) WHILE i ≤ j DO
a) WHILE ((i ≤ j) & X(i).k = 2) DO i = i + 1;
b) WHILE ((i ≤ j) & X(i).k ≠ 2) DO j = j - 1;
c) IF i < j THEN swap (Xi, Xj);
5) Output (X)
*Độ phức tạp O(n)
Được sửa bởi Admin ngày Wed Jul 20, 2011 9:26 am; sửa lần 1.