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!