Sắp xếp mảng 1 chiều có điều kiện trong Pascal

Thuật toán sắp xếp mảng 1 chiều có điều kiện rất hay được lựa chọn để ra trong các câu mức độ 1 của đề thi học sinh giỏi tin học cấp huyện hay cấp tỉnh, trên cơ sở thuật toán sắp xếp người ta đưa thêm vào một điều kiện nào đó để bài toán trở nên khó hơn một chút, buộc học sinh phải tư duy và có kĩ năng cơ bản mới có thể thực hiện được. Chẳng hạn:

Bài toán 1: Viết chương trình nhập vào mảng n số nguyên (n < 1000). Sắp xếp các phần tử của mảng sao cho các số âm ở đầu dãy, số 0 ở giữa rồi đến các số dương và thứ tự các số âm và số dương không đổi. In ra kết quả là dãy sau khi sắp xếp.

Ví dụ:             Với n = 10 :

4    -1    5     6    -5    8      0     -3    9     8

Dãy sau khi sắp xếp là:

-1   -5    -3   0    4    5    6    8     9    8

Dữ liệu vào file: Sortby.inp Dữ liệu ra file: Sortby.out
– Dòng 1: chứa số n

– Dòng 2 chứa n số cách nhau ít nhất 1 khoảng trắng

1 dòng chứa dãy đã sắp xếp

Bài toán cũng có thể thay cách hỏi với điều kiện sắp xếp khác chẳng hạn:

Bài toán 2: sắp xếp các phần tử của mảng sao cho các số chẵn đứng trước các số lẻ đứng sau. Thứ tự không đổi

Bài toán 3: Sắp xếp đan xen, đầu tiên là một số âm rồi đến một số dương, những số không ghép cặp được thì cho xuống dưới cùng, thứ tự không đổi.

Code sắp xếp mảng 1 chiều có điều kiện trong Pascal – Bài toán 1

Leave a Reply

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