Khi bạn làm bài tập lập trình mà có các cụm từ khóa sau:
Sắp xếp dãy số tự nhiên tăng dần/giảm dần
Sắp xếp mảng số thực tăng dần/ giảm dần
Sắp xếp mảng 1 chiều các số tự nhiên tăng/giảm dần
Thì cả 3 đề bài này đều là bài toán sắp xếp dữ liệu trên mảng 1 chiều. Khi nhắc tới “dãy số” thì bạn phải nghĩ ngay tới mảng 1 chiều. Dưới đây là 1 số lưu ý tham khảo trước khi tiếp tục đọc bài viết này:
Bạn cần có kiến thức về mảng 1 chiều để có thể hiểu bài viết này, xem tại:Mảng 1 chiều
Có rất nhiều thuật toán sắp xếp khác nhau, tham khảo thêm tại:thuật toán sắp xếp
Tổng hợp bài tập mảng 1 chiều có lời giải:Bài tập mảng 1 chiều có lời giải
2. Sắp xếp dãy số giảm dần
Trong code mà mình cung cấp dưới đây thì mình sẽ dùng thuật toán sắp xếp chọn – một thuật toán sắp xếp dễ hiểu và dễ cài đặt nhất.
program sap_xep_chuso;
uses crt;
var A:array[1..1000] of integer;
n,i:integer;
procedure sx(k:integer);
var B:array[1..10] of byte;
d,j,h,tg:byte;
begin
d:=0;
while k>0 do
begin
d:=d+1;
B[d]:=n mod 10;
n:=n div 10;
end;
for j:=1 to d-1 do
for h:=j+1 to d do
if B[j]<B[h] then
begin
tg:=B[j];
B[j]:=B[h];
B[h]:=tg;
end;
for j:=1 to d do write(B[i]);
write(‘ ‘);
end;
BEGIN
clrscr;
write(‘Nhap n: ‘); readln(n);
for i:=1 to n do
begin
write(‘Nhap so thu ‘,i,’: ‘); readln(A[i]);
end;
for i:=1 to n do sx(A[i]);
readln;
end.
1. Dãy số hay là mảng?
Khi bạn làm bài tập lập trình mà có các cụm từ khóa sau:
Thì cả 3 đề bài này đều là bài toán sắp xếp dữ liệu trên mảng 1 chiều. Khi nhắc tới “dãy số” thì bạn phải nghĩ ngay tới mảng 1 chiều. Dưới đây là 1 số lưu ý tham khảo trước khi tiếp tục đọc bài viết này:
2. Sắp xếp dãy số giảm dần
Trong code mà mình cung cấp dưới đây thì mình sẽ dùng thuật toán sắp xếp chọn – một thuật toán sắp xếp dễ hiểu và dễ cài đặt nhất.