Cách sắp xếp mảng trong C / C++
Trong bài viết này, codehow sẽ hướng dẫn các bạn cách sắp xếp mảng trong C / C++. Đây là dạng bài tập cơ bản để các bạn thao tác với mảng một chiều trong C / C++.
Có hai cách sắp xếp một mảng, đó là sắp xếp theo thứ tự tăng dần và theo thứ tự giảm dần. Tùy thuộc vào yêu cầu của bài toán mà chúng ta chọn cách sắp xếp nào.
Ví dụ: Giả sử mình có mảng Number = {4, 2, 7, 1} là các số tự nhiên. Mảng Number sau khi sắp xếp theo thứ tự tăng dần là {1, 2, 4, 7} và thứ tự giảm dần là {7, 4, 2, 1}.
Vậy làm sao để thực hiện chương trình sắp xếp mảng trong C / C++, các bạn hãy bắt đầu cùng mình ngay bây giờ nhé!
Cách sắp xếp mảng trong C / C++ tăng dần
Trong phần này, mình sẽ thực hiện chương trình sắp xếp mảng trong C / C++ theo thứ tự tăng dần. Cụ thể theo từng bước như sau.
Bước 1: Tạo hàm sort_number()
với hai tham số truyền vào đó là mảng cần sắp xếp và số lượng phần tử trong mảng. Trong hàm sẽ sử dụng hai vòng lặp for để lặp từng phần tử, so sánh và sắp xếp các phần tử theo tứ tự tăng dần.
void sort_numbers_ascending(int number[], int count) { int temp, i, j, k; for (j = 0; j < count; ++j) { for (k = j + 1; k < count; ++k) { if (number[j] > number[k]) { temp = number[j]; number[j] = number[k]; number[k] = temp; } } } printf("Các số sau khi được sắp xếp tăng dần:\n"); for (i = 0; i < count; ++i) printf("\n%d",number[i]); }
Bước 2: Yêu cầu người dùng nhập vào số lương phần từ và giá trị cho các phần tử.
int i, count, number[20]; printf("Nhập số lương phần tử trong mảng:"); scanf("%d", &count); printf("\nNhập giá trị cho từng phần tử trong mảng:\n"); for (i = 0; i < count; ++i) scanf("%d", &number[i]);
Bước 3: Gọi hàm sort_number()
để sắp xếp và hiển thị kết quả ra màn hình.
sort_numbers_ascending(number, count);
Chương trình C:
#include <stdio.h> #include <string.h> void sort_numbers_ascending(int number[], int count) { int temp, i, j, k; for (j = 0; j < count; ++j) { for (k = j + 1; k < count; ++k) { if (number[j] > number[k]) { temp = number[j]; number[j] = number[k]; number[k] = temp; } } } printf("Các số sau khi được sắp xếp tăng dần:\n"); for (i = 0; i < count; ++i) printf("\n%d",number[i]); } int main() { int i, count, number[20]; printf("Nhập số lương phần tử trong mảng:"); scanf("%d", &count); printf("\nNhập giá trị cho từng phần tử trong mảng:\n"); for (i = 0; i < count; ++i) scanf("%d", &number[i]); sort_numbers_ascending(number, count); printf("\n-------------------------------\n"); printf("Chương trình này được đăng tại codehow.net"); }
Kết quả:
Chương trình C++:
#include <iostream> using namespace std; void sort_numbers_ascending(int number[], int count) { int temp, i, j, k; for (j = 0; j < count; ++j) { for (k = j + 1; k < count; ++k) { if (number[j] > number[k]) { temp = number[j]; number[j] = number[k]; number[k] = temp; } } } cout<<"Các số sau khi được sắp xếp tăng dần:\n"; for (i = 0; i < count; ++i) cout<<"\n"<< number[i]; } int main() { int i, count, number[20]; cout<<"Nhập số lương phần tử trong mảng:"; cin>>count; cout<<"\nNhập giá trị cho từng phần tử trong mảng:\n"; for (i = 0; i < count; ++i) cin>>number[i]; sort_numbers_ascending(number, count); cout<<"\n-------------------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; return 0; }
Kết quả:
Cách sắp xếp mảng trong C / C++ giảm dần
Tương tự như cách sắp xếp mảng trong C / C++ tăng dần, để sắp xếp mảng theo thứ tự giảm dần ta chỉ cần thay đổi điều kiện một chút mà thôi. Các bạn có thể tham khảo chương trình dưới đây nhé.
Chương trình C:
#include <stdio.h> #include <string.h> void sort_numbers_ascending(int number[], int count) { int temp, i, j, k; for (j = 0; j < count; ++j) { for (k = j + 1; k < count; ++k) { if (number[j] < number[k]) { temp = number[j]; number[j] = number[k]; number[k] = temp; } } } printf("Các số sau khi được sắp xếp giảm dần:\n"); for (i = 0; i < count; ++i) printf("\n%d",number[i]); } int main() { int i, count, number[20]; printf("Nhập số lương phần tử trong mảng:"); scanf("%d", &count); printf("\nNhập giá trị cho từng phần tử trong mảng:\n"); for (i = 0; i < count; ++i) scanf("%d", &number[i]); sort_numbers_ascending(number, count); printf("\n-------------------------------\n"); printf("Chương trình này được đăng tại codehow.net"); }
Kết quả:
Chương trình C++:
#include <iostream> using namespace std; void sort_numbers_ascending(int number[], int count) { int temp, i, j, k; for (j = 0; j < count; ++j) { for (k = j + 1; k < count; ++k) { if (number[j] < number[k]) { temp = number[j]; number[j] = number[k]; number[k] = temp; } } } cout<<"Các số sau khi được sắp xếp giảm dần:\n"; for (i = 0; i < count; ++i) cout<<"\n"<< number[i]; } int main() { int i, count, number[20]; cout<<"Nhập số lương phần tử trong mảng:"; cin>>count; cout<<"\nNhập giá trị cho từng phần tử trong mảng:\n"; for (i = 0; i < count; ++i) cin>>number[i]; sort_numbers_ascending(number, count); cout<<"\n-------------------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; return 0; }
Kết quả:
Như vậy là chúng ta đã cùng nhau tìm hiểu về cách sắp xếp mảng trong C / C++. Có hai cách sắp xếp đó là tăng dần và giảm dần, các bạn có thể lựa chọn tùy vào bài toán nhé. Chúc các bạn thực hiện thành công !!!