Sắp xếp một mảng số nguyên sao cho số lẻ nằm trước số chẵn trong C
Trong lập trình, việc sắp xếp dữ liệu là một phần quan trọng. Trong bài tập này, mình sẽ tập trung vào việc sắp xếp một mảng số nguyên sao cho các số lẻ nằm trước các số chẵn trong lập trình C.
Bài tập sắp xếp một mảng số nguyên cho số lẻ nằm trước số chẵn trong C
Cách giải quyết bài lập trình
Để giải quyết bài toán này, mình có thể sử dụng thuật toán sắp xếp như Bubble Sort
, Selection Sort
hoặc Insertion Sort. Trong bài này, mình sẽ sử dụng Bubble Sort vì nó dễ hiểu và dễ cài đặt.
Thuật toán Bubble Sort hoạt động bằng cách so sánh các cặp phần tử liên tiếp trong mảng và hoán đổi chúng nếu cần. Trong trường hợp này, mình sẽ so sánh các số lẻ và chẵn, và nếu phần tử bên trái là chẵn và phần tử bên phải là lẻ, mình sẽ hoán đổi chúng.
Bài viết này được đăng tại [free tuts .net]
Hãy xem cách giải như sau:
Dưới đây là một ví dụ về cách cài đặt thuật toán Bubble Sort trong ngôn ngữ lập trình C để sắp xếp mảng số nguyên sao cho số lẻ nằm trước số chẵn:
#include <stdio.h> // Hàm hoán đổi hai phần tử void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } // Hàm sắp xếp mảng sao cho số lẻ nằm trước số chẵn void sortOddEven(int arr[], int n) { for (int i = 0; i < n-1; i++) { for (int j = 0; j < n-i-1; j++) { // Nếu số bên trái là chẵn và số bên phải là lẻ, hoán đổi chúng if (arr[j] % 2 == 0 && arr[j+1] % 2 != 0) { swap(&arr[j], &arr[j+1]); } } } } // Hàm in mảng ra màn hình freetuts.net void printArray(int arr[], int size) { for (int i = 0; i < size; i++) printf("%d ", arr[i]); printf("\n"); } int main() { int arr[] = {12, 34, 45, 9, 8, 90, 3}; int n = sizeof(arr)/sizeof(arr[0]); printf("Mảng trước khi sắp xếp: \n"); printArray(arr, n); sortOddEven(arr, n); printf("Mảng sau khi sắp xếp sao cho số lẻ nằm trước số chẵn: \n"); printArray(arr, n); return 0; }
Kết quả
Kết quả khi chạy chương trình sẽ là mảng đã được sắp xếp sao cho số lẻ nằm trước số chẵn:
Trong bài tập này, mình đã học cách sắp xếp một mảng số nguyên sao cho số lẻ nằm trước số chẵn sử dụng thuật toán Bubble Sort trong ngôn ngữ lập trình C. Điều này cung cấp một phương pháp cơ bản để xử lý bài toán tương tự trong các tình huống thực tế.