Cách sắp xếp dãy số nguyên, mảng một chiều theo thứ tự tăng dần, giảm dần trong C / C++. Cách sắp xếp dãy số thực char, mảng số nguyên n nhập vào từ bàn phím.

Bạn đang xem: Sắp xếp các phần tử trong mảng tăng dần


1. Giới thiệu bài toán sắp xếp

Bài toán sắp xếp là bài toán cơ bản và cực kì quan trọng, nó là một giải thuật cơ bản mà bất kì lập trình viên nào cũng cần phải biết, cùng tìm hiểu bài toán này nhé!

Dạng đề bài cho bài toán này chúng ta sẽ thường xuyên gặp phải. Các giải thuật để giái quyết bài toán có thể sử dụng ở cả hiện tại và sau này, chình vì vậy người ta mới nói đây là một bài toán quan trọng.

Khi nhắc đến sắp xếp dãy số, bạn liền phải nghĩ đó là cấu trúc mảng. Các dạng đề như sắp xếp dãy số nguyên, mảng số thực theo chiều tăng/ giảm đều là biến thể của bài toán này.

Đối với bài tập nhập môn thường sẽ là: Nhập một dãy số có N phần từ, N nhập vào từ bàn phím. Sắp xếp dãy số đó . . .

2. Cách sắp xếp dãy số

Chính vì bài toán sắp xếp là dạng bài kinh điển nên có rất nhiều thuật toán sắp xếp khác nhau như:

Sắp xếp vun đống – heap sort
Sắp xếp trộn – merge sort. . . .

Thuật toán thường được nhiều người, thầy cô sử dụng nhất khi mới học đó chính là sắp xếp chọn.Sắp xếp chọn lấy ý tưởng đó là: Sau mỗi lần lặp ta sẽ tìm được một phần tử đúng vị trí. Bạn có thể xem hình minh họa dưới:


*

Trong bài viết này mình sẽ sử dụng luôn thuật toán này.

2.1 Hàm sắp xếp dãy số tăng dần C/C++

Nếu bạn đang tìm cách sắp xếp các kí tự kiểu char, bạn cũng có thể sử dụng các này nhé!

Ở đây mình sẽ viết thành hàm cho dễ sử dụng nhé. hàm swap do mình viết ra có tác dụng đổi chỗ hai phần tử cho nhau.

// Ham doi vi tri hai phan tuvoid swap(int &a, int &b){int temp =a;a=b;b=temp;}// Ham sap xep tangvoid sort
Arr
Tang(int a<>, int n){for(int i=0;ia){swap(a, a);}}}Giải thích: Nếu cần sắp xếp mảng có n phần tử. Ta chỉ cần thực hiện n-1 lần chọn, bởi vì phần tử cuối cùng đã tự đúng vị trí nên trong vòng lặp for đầu tiên i2.2 Hàm sắp xếp giảm

Sắp xếp giảm cơ bản giống với phần trên. Chỉ cần thay đổi điều kiện là nếu a

3. Sắp xếp dãy số nguyên có N phần tử

Phần này mình sẽ viết full code về sắp xếp một dãy số nguyên có n phần tử theo chiều tăng dần, giảm dần, n nhập vào từ bàn phím. Mời bạn tham khảo:

/* Code by duongdinh24.com Github: https://github.com/duongdinh24/*/#includeusing namespace std;// Ham doi vi tri hai phan tuvoid swap(int &a, int &b){int temp =a;a=b;b=temp;}// Ham sap xep tangvoid sort
Arr
Tang(int a<>, int n){for(int i=0;ia){swap(a, a);}}}// Ham sap xep giamvoid sort
Arr
Giam(int a<>, int n){for(int i=0;i>a;}// Ham xuat mangvoid print
Arr(int a<>, int n){for(int i=0;i>n;}while(n
Ví dụ sắp xếp theo thứ tự tăng dần:


*

Ví dụ hàm sắp xếp giảm:


*

Bài viết của mình đến đây là hết. Bạn đọc có ý kiến đóng góp hay thắc mắc gì nhớ để lại comment phía dưới nhé!

Like và chia sẻ chúng cho bạn bè nếu bạn thấy bài viết hữu ích!Cảm ơn bạn ghé thăm tmec.edu.vn duongdinh24.comChúc bạn thành công !

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.


NỘI DUNG BÀI VIẾT


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:

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

*
*
*

Phép toán thao tác bit trong C++ (Bitwise operation)


*

Tính lũy thừa ma trận trong C/C++


*

Bài tập struct trong C/C++ có lời giải


*

Bài 17.1. Mảng 1 chiều trong C#


Giới thiệu website Luyện Code Online


Giáo trình Kỹ thuật lập trình C – Phạm Văn Ất


Subscribe
Connect with
Notify of
new follow-up comments
Label
Name*
Email*
Website
Connect with
Label
Name*
Email*
Website
26 Bình luận
Inline Feedbacks
View all comments
Load More Comments
Khóa học miễn phí
Ưu đãi mới nhất

Mã giảm giá & khuyến mại khóa học lập...

Xem thêm:


Khóa học lập trình Java cơ bản miễn phí


Học lập trình online với mức giá ưu đãi


Lập trình Win
Form với C# qua 10 ứng dụng


Học HTML5, CSS3, Bootstrap 4 và cắt Web từ file PSD


Học Python từ Zero – Hero


Khóa học lập trình Android toàn tập


Học lập trình C/C++ TỪ A – Z


tmec.edu.vn chia sẻ kiến thức lập trình của Hiếu, xây dựng cộng đồng những người học lập trình. Cho đi kiến thức mình có là cách học tập hiệu quả nhất


Báo lỗi / Liên hệ / Hợp tác / Quảng cáo
tmec.edu.vnger
Discord
Facebook
Linkedin
Youtube

BÀI VIẾT HAY


Bài 1. Giới thiệu khóa học “Học C Bá Đạo”


1000 bài tập lập trình C/C++ có lời giải của thầy Khang


Kiểm tra số nguyên tố sử dụng C/C++ và Java


CHUYÊN MỤC HAY


- BẠN BÈ & ĐỐI TÁC -

---

© 2018-2020. Bản quyền thuộc Lập Trình Không Khó. Privacy & Terms


26
0
Would love your thoughts, please comment.x
()
x
| Reply
Insert
NHIỀU BÀI VIẾT HƠN

Viết hàm đếm số lượng số nguyên tố nhỏ hơn 100...


Kiểm tra loại tam giác bằng code C++