Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /home/caocap/public_html/wp-content/plugins/fixed-toc/frontend/html/class-dom.php on line 98
Sắp xếp dãy số theo thứ tự tăng dần hay giảm dần là 1 bài toán sắp xếp đơn giản và cơ bản nhất đối với bất cứ ai học lập trình. Nói theo cách khác, bài toán này chính là bài toán sắp xếp mảng 1 chiều tăng dần/giảm dần. Bài toán sắp xếp dãy số là bài tập điển hình trong phần kiến thức về mảng 1 chiều. Sắp xếp cũng là một kiến thức quan trọng thuộc phần giải thuật trong cấu trúc dữ liệu & giải thuật. Trong bài viết này, Lập trình không khó sẽ cùng các bạn giải quyết bài toán sắp xếp mảng 1 chiều tăng dần và giảm dần.
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:
- 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.
Xem hình dưới đây để hiểu ý tưởng sắp xếp, xem chi tiết tại bài thuật toán sắp xếp chọn
Code sắp xếp mảng/ dãy số giảm dần với C/C++:
Chạy thử:
3. Sắp xếp dãy số tăng dần
Việc sắp xếp dãy số tăng dần chỉ khác sắp xếp giảm dần duy nhât ở bước kiểm tra điều kiện để hoán vị.
Kết quả chạy thử:
4. Sắp xếp dãy số tăng, giảm dần với hàm
Việc dùng hàm sẽ giúp code của chúng ta rõ ràng, sạch sẽ và cũng dễ quản lý, nâng cấp. Với bài toán này, chúng ta có thể viết 4 hàm riêng biệt sau:
- void NhapMang(int a[], int n)
- void XuatMang(int a[], int n)
- void TangDan(int a[], int n)
- void GiamDan(int a[], int n)
Kết quả chạy chương trình
Chú ý:
- Với số thực hay kiểu ký tự(char) bạn cũng làm tương tự. Chỉ cần sửa kiểu dữ liệu của mảng, cách nhập, xuất. Còn phần thuật toán sắp xếp vẫn giữ nguyên.
- Đây là thuật toán sắp xếp đơn giản và dễ cài đặt nhất, bạn nên thử cài đặt bằng những thuật toán sắp xếp khác.
Các bài viết trong khóa họcBài trước: Bài 44. Tìm vị trí của số lớn nhất trong mảngBài sau: Bài 46. Liệt kê số nguyên tố trong mảng 1 chiều
- Share CrocoBlock key trọn đời Download Crocoblock Free
- Cung cấp tài khoản nghe nhạc đỉnh cao Tidal Hifi – chất lượng âm thanh Master cho anh em mê nhạc.
- 40 Hình Nền Cảnh Biển Đẹp Tuyệt Vời Cho Điện Thoại Smartphone
- Toyota Fortuner 2019 cũ: Bảng giá xe Fortuner 2019 cũ tháng 09/2021 | anycar.vn
- Làm cách nào tải video trên Youtube về iPhone nhanh nhất? Thủ thuật
- Công tắc điều khiển từ xa công suất lớn TPE RC1A
- 2 Người Cùng Đăng Nhập 1 Tài Khoản Facebook, Cách Đăng Nhập Facebook Nhiều Tài Khoản Cùng Lúc – friend.com.vn