Để thực hiện việc sắp xếp mảng theo chiều giảm dần, ta cần thực hiện các bước lặp và thực hiện kiểm tra điều kiện.
Ta chọn lần lượt các phần tử có trong mảng và chọn từ phần tử đầu tiên đến phần tử gần cuối của mảng trên để đem so sánh với các phần tử còn lại trong mảng , nếu phần tử đang được chọn nhỏ hơn phần tử bất kỳ nào nằm trong danh sách thì sẽ thực hiện đổi chỗ hay hoán vị vị trí cho hai phần tử này, ngược lại thì giữ nguyên vị trí.
Chương trình sắp xếp giảm dần các phần tử trong mảng ngôn ngữ C/C++
#include <stdio.h> int main(){ //khai bao so luong phan tu int n = 10; //khai bao mang int number[n] = {8,5,2,6,9,3,1,4,0,7}; //khai bao bien trung gian de hoan vi int trunggian; //hien thi mang ban dau printf("MANG BAN DAU\n"); for(int i = 0; i < n; i++){ printf("%d \n", number[i]); } //thuc hien thuat toan sap xep chon for(int i = 0; i < n - 1; i++){ for(int j = i + 1; j < n; j ++){ //neu tim thay phan tu lon hon phan tu dang xet thi doi cho 2 phan tu do cho nhau if(number[i] < number[j]){ //hoan vi 2 phan tu trunggian = number[i]; number[i] = number[j]; number[j] = trunggian; } } } //hien thi mang sau khi sap xep giam dan printf("MANG SAU KHI SAP XEP GIAM DAN\n"); for(int i = 0; i < n; i++){ printf("%d \n", number[i]); } }
Hàm sắp xếp giảm dần các phần tử trong mảng ngôn ngữ C/C++
#include <stdio.h> void SapXepGiam(int number[], int n){ //khai bao bien trung gian de hoan vi int trunggian; //thuc hien thuat toan sap xep chon for(int i = 0; i < n - 1; i++){ for(int j = i + 1; j < n; j ++){ //neu tim thay phan tu lon hon phan tu dang xet thi doi cho 2 phan tu do cho nhau if(number[i] < number[j]){ //hoan vi 2 phan tu trunggian = number[i]; number[i] = number[j]; number[j] = trunggian; } } } } int main(){ //khai bao so luong phan tu int n = 10; //khai bao mang int number[n] = {8,5,2,6,9,3,1,4,0,7}; //hien thi mang ban dau printf("MANG BAN DAU\n"); for(int i = 0; i < n; i++){ printf("%d \n", number[i]); } //goi ham sap xep giam va truyen vao mang can sap xep va so luong phan tu SapXepGiam(number,n); //hien thi mang sau khi sap xep giam dan printf("MANG SAU KHI SAP XEP GIAM DAN\n"); for(int i = 0; i < n; i++){ printf("%d \n", number[i]); } }