HomeLập trình pascal

Thuật toán sắp xếp xoắn ốc mảng hai chiều – Minh họa bằng Pascal

Like Tweet Pin it Share Share Email
Like và share giúp mình phát triển website nhé.
  •  
  •  

Nếu như sắp xếp zich zac mảng hai chiều quá đơn giản đối với bạn thì bạn nên thử sức với thuật toán sắp xếp xoắn ốc mảng hai chiều, bởi nó hay và thú vị hơn rất nhiều.

Bài toán: Viết chương trình sắp xếp mảng vuông hai chiều (n hàng, n cột) theo hình xoắn ốc như sau:

Dữ liệu vào file: XOANOC.INP dòng đầu chứa n, các dòng sau chứa mảng vuông 2 chiều n hàng, n cột

Dữ liệu ra file: XOANOC.OUT chứa mảng 2 chiều n hàng, n cột đã sắp xếp

VD:

XOANOC.INP XOANOC.OUT
3

1    3    5

2    4    6

8    7    9

1    2   3

8    9   4

7    6   5

 

Chú ý: Có thể yêu cầu sắp xếp như sau:

Ý tưởng xây dựng thuật toán sắp xếp xoắn ốc

Các bạn thấy rằng mỗi một vòng thì có 4 con đường đi như sau:

  • Từ trái qua phải
  • Từ trên xuống dưới
  • Từ phải sang trái
  • Từ dưới lên trên

Các vòng phía trong lại lặp lại 4 con đường giống như vậy, đó chính là cơ sở để ta xây dựng thuật toán.

Dưới đây mình có 2 chương trình mẫu viết theo 2 cách khác nhau để các bạn tham khảo

Chương trình 1: Nhập xuất từ bàn phím, dùng hàm case … of

Chương trình 2: Nhập xuất từ file, Không dùng hàm case … of

Comments (0)

Trả lời

Your email address will not be published. Required fields are marked *