#include #include #include #include using namespace std; void selection_sort(int*, int, bool); void printarray(int*, int); bool ascending(int, int); bool descending(int, int); int main() { int arr[] = { 5, 3, 7, 1, 54, 76 }; int* ptr = arr; int length = sizeof(arr) / sizeof(int); bool (*comparison) (int, int); selection_sort(arr, length, ascending); printarray(arr, length); return 0; } void selection_sort(int* arr, int length, bool (*comparison)(int, int) ) // em nghĩ bị lỗi ở đây { for (int i = 0; i < length; i++) { int mindefault = i; for (int e = i + 1; e < length; e++) { if ( comparison(arr[mindefault], arr[e]) ) mindefault = e; } swap(arr[i], arr[mindefault]); } } void printarray(int* ptr, int length) { for (int i = 0; i < length; i++) cout << ptr[i] << " "; } bool ascending(int left, int right) { return (left > right); } bool descending(int left, int right) { return (left < right); }