Sắp xếp một mảng số nguyên theo thứ tự tăng dần hoặc giảm dần trong C
Trong bài tập này, mình sẽ viết một chương trình trong ngôn ngữ lập trình C để sắp xếp một mảng số nguyên theo thứ tự tăng dần hoặc giảm dần.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
- Nhập vào một mảng số nguyên từ người dùng.
 - Cho người dùng chọn sắp xếp theo thứ tự tăng dần hoặc giảm dần.
 - Hiển thị mảng sau khi đã sắp xếp.
 
Chương trình sắp xếp một mảng số nguyên trong C
Cách giải quyết bài lập trình
- Sử dụng thuật toán sắp xếp nổi bọt (bubble sort) để sắp xếp mảng.
 - Nếu người dùng chọn sắp xếp tăng dần, sử dụng thuật toán bubble sort theo hướng tăng dần.
 - Nếu người dùng chọn sắp xếp giảm dần, sử dụng thuật toán bubble sort theo hướng giảm dần.
 
Hãy xem cách giải như sau:
#include <stdio.h>
// Hàm sắp xếp mảng theo thứ tự tăng dần
void bubbleSortAscending(int arr[], int n) {
    int i, j, temp;
    for (i = 0; i < n - 1; i++) {
        for (j = 0; j < n - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}
// Hàm sắp xếp mảng theo thứ tự giảm dần
void bubbleSortDescending(int arr[], int n) {
    int i, j, temp;
    for (i = 0; i < n - 1; i++) {
        for (j = 0; j < n - i - 1; j++) {
            if (arr[j] < arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}
int main() {
    int arr[100], n, i, choice;
    printf("Nhập số phần tử của mảng: ");
    scanf("%d", &n);
    printf("Nhập các phần tử của mảng:\n");
    for (i = 0; i < n; i++) {
        printf("arr[%d] = ", i);
        scanf("%d", &arr[i]);
    }
    printf("Chọn cách sắp xếp:\n");
    printf("1. Sắp xếp tăng dần\n");
    printf("2. Sắp xếp giảm dần\n");
    printf("Nhập lựa chọn của bạn: ");
    scanf("%d", &choice);
    switch (choice) {
        case 1:
            bubbleSortAscending(arr, n);
            printf("Mảng sau khi sắp xếp tăng dần:\n");
            break;
        case 2:
            bubbleSortDescending(arr, n);
            printf("Mảng sau khi sắp xếp giảm dần:\n");
            break;
        default:
            printf("Lựa chọn không hợp lệ.\n");
            return 1;
    }
    for (i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
    return 0;
}
Kết quả:
Bài viết này được đăng tại [free tuts .net]

Trên đâylà cách viết một chương trình trong ngôn ngữ lập trình C để sắp xếp một mảng số nguyên theo thứ tự tăng dần hoặc giảm dần. Chúc bạn thực hiện thành công!

            Các kiểu dữ liệu trong C ( int - float - double - char ...)        
            Thuật toán tìm ước chung lớn nhất trong C/C++        
            Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)        
            ComboBox - ListBox trong lập trình C# winforms        
            Random trong Python: Tạo số random ngẫu nhiên        
            Lệnh cin và cout trong C++        
                Cách khai báo biến trong PHP, các loại biến thường gặp            
                Download và cài đặt Vertrigo Server            
                Thẻ li trong HTML            
                Thẻ article trong HTML5            
                Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên            
                Cách dùng thẻ img trong HTML và các thuộc tính của img            
                Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng