面试题答案
一键面试#include <iostream>
// 比较函数,实现降序排序
bool compareDescending(int a, int b) {
return a > b;
}
// 排序函数
void sortArray(int* arr, int size, bool (*compare)(int, int)) {
for (int i = 0; i < size - 1; ++i) {
for (int j = 0; j < size - i - 1; ++j) {
if (!compare(arr[j], arr[j + 1])) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {5, 3, 9, 1, 7};
int size = sizeof(arr) / sizeof(arr[0]);
// 使用降序比较函数调用排序函数
sortArray(arr, size, compareDescending);
// 输出排序后的数组
for (int i = 0; i < size; ++i) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
上述代码实现了:
- 定义了一个
compareDescending
函数,用于实现降序比较逻辑。 sortArray
函数接受一个数组、数组大小和一个比较函数指针,通过比较函数实现排序。- 在
main
函数中,定义了一个数组并调用sortArray
函数,使用compareDescending
函数指针实现降序排序,并输出排序后的数组。