Sắp xếp mảng theo thứ tự tăng dần C++ là một trong những thuật toán căn bản nhất mà dân lập trình đều phải thành thạo. Bài viết này sẽ giúp các bạn nắm được cách sắp xếp mảng theo thứ tự tăng dần một cách dễ hiểu nhất.
Thế nào là sắp xếp mảng?
Bài toán sắp xếp chắc hẳn đã quá quen thuộc và gần gũi trong thực tế đời sống của mỗi chúng ta. Ví dụ: sắp xếp danh sách điểm thi theo thứ tự điểm số từ cao xuống thấp, sắp xếp danh sách học sinh trong một lớp học theo thứ tự chiều cao từ thấp nhất đến cao nhất, sắp xếp độ tuổi của nhân viên trong một công ty theo thứ tự từ người trẻ tuổi nhất đến người cao tuổi nhất, v.v. Vậy thì bài toán sắp xếp là gì?
Bài toán sắp xếp là yêu cầu sắp xếp lại các phần tử trong một danh sách cho sẵn theo chiều tăng dần hoặc giảm dần dựa trên một tiêu chí chung nào đó của phần tử có trong danh sách.
Trong ngôn ngữ lập trình C++, bài toán sắp xếp mảng rất phổ biến. Mục đích chính của việc sắp xếp này là mang lại cho chúng ta cái nhìn tổng quan hơn, thuận tiện hơn về những dữ liệu mà ta sẵn có. Để giải các bài toán sắp xếp mảng, chúng ta phải viết được thuật toán sắp xếp mảng. Đây là thuật toán được sử dụng rất phổ biến trong lập trình, không chỉ riêng đối với ngôn ngữ lập trình C++ mà đối với tất cả các loại ngôn ngữ lập trình khác.
Các dạng bài sắp xếp mảng thường gặp là: Sắp xếp mảng theo thứ tự tăng dần và sắp xếp mảng theo thứ tự giảm dần.
Phạm vi bài viết này sẽ cùng các bạn giải quyết bài toán sắp xếp mảng theo thứ tự tăng dần C++.
Cách giải quyết bài toán sắp xếp mảng theo thứ tự tăng dần trong C++
Đề bài: Sắp xếp mảng a gồm n phần tử theo thứ tự tăng dần.
Thuật toán để giải bài toán sắp xếp mảng theo thứ tự tăng dần trong ngôn ngữ C++ khá đơn giản, tuy nhiên bạn phải nắm chắc kiến thức về vòng lặp for và các phép gán của ngôn ngữ lập trình C/C++.
Hàm sắp xếp sẽ sử dụng lồng ghép hai vòng lặp for để kiểm tra mảng.
- Vòng for thứ nhất: i chạy từ 0 đến n (duyệt toàn bộ mảng)
- Vòng for thứ hai: j chạy từ 0 tới i (mục đích là so sánh i lần lượt với các phần tử trước nó)
- Tại mỗi a[j], so sánh nó với a[i]. Nếu a[j]>a[i] thì tiến hành đổi chỗ các phần tử với nhau.
Cho vòng for chạy hết, ta sẽ có mảng a được sắp xếp tăng dần.
Có 2 cách để thay đổi vị trí các phần tử:
Cách 1: Dùng biến trung gian (Mid)
Cách 2: Không dùng biến trung gian
Thuật toán hoàn chỉnh sắp xếp mảng theo thứ tự tăng dần C++
Vừa rồi mình đã đưa ra code đổi vị trí phần tử. Để chạy chương trình sắp xếp mảng tăng dần hoàn chỉnh, bạn thực hiện như sau:
Như vậy bài viết đã giới thiệu xong cách sắp xếp mảng theo thứ tự tăng dần C++. Chúc các bạn thực hiện thành công!