Sắp xếp ma trận xoắn ốc

K

kieuquocdat

[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Em gặp phải một thuật toán sau mà không biết cách giải quyết thế nào, gửi lên đây nhờ mọi người giúp đỡ.

Bài toán yêu cầu: Nhập vào một mảng 2 chiều n * m các chữ số, với n=1,2,.. va m=1,2,... (mãng số). Sắp xếp chúng theo hình xoán ốc thứ tự tăng dần hoặc giảm dần.

Ví dụ:
Nhập Kết quả

12 30 35 43 50 9 12 18 23 30
9 80 36 49 87 ==> 75 80 87 189 35
70 50 18 75 190 70 765 230 190 36
230 765 23 65 189 65 50 50 49 43

Mong mọi người giúp đỡ
 

Anbu47

Học sinh mới
Thành viên
22 Tháng sáu 2017
2
0
1
21
à, bài này thì sử dụng biến trung gian để thay đổi giá trị của biến nha, sử dụng biến đếm để duy trì
VD: if a[1,1] > a[1,2] then
begin TG:=a[1,1]; a[1,1]:=a[1,2]; a[1,2]:=TG;
còn sắp xếp theo hình xoắn ốc thì bạn tham khảo trên mạng nha, tại dài quá mình không ghi ra được.
 

Nguyễn Thánh Tiền

Mr Favoirite 2012
Thành viên
2 Tháng mười 2010
1,931
782
324
Hà Nội
cO VUA
cách đơn giản nhất là bạn
+tạo ra 1 mảng 1 chiều phụ
+sau đó bạn copy dữ liệu qua mảng 1 chiều phụ này
+ xắp xếp mảng phụ
+ duyệt ma trận theo chiều xoắn ốc và copy từng thành phần 1 lại
 
Top Bottom