题目:函数的功能是对参数p传送的首地址 型数组按降序排序。
时间: 2024-03-14 19:44:37 浏览: 12
可以使用以下的快速排序算法实现对数组的降序排序:
```c
void quickSort(int *p, int left, int right) {
int i = left, j = right;
int temp, pivot = p[(left + right) / 2];
while (i <= j) {
while (p[i] > pivot)
i++;
while (p[j] < pivot)
j--;
if (i <= j) {
temp = p[i];
p[i] = p[j];
p[j] = temp;
i++;
j--;
}
}
if (left < j)
quickSort(p, left, j);
if (i < right)
quickSort(p, i, right);
}
void arraySort(int *p, int size) {
quickSort(p, 0, size - 1);
}
```
其中,`quickSort` 函数是快速排序算法的实现,`arraySort` 函数则是对外提供的对数组进行排序的接口函数。你可以将需要排序的数组的首地址传递给 `arraySort` 函数以进行排序,例如:
```c
int main() {
int arr[] = {3, 2, 1, 5, 4};
int size = sizeof(arr) / sizeof(arr[0]);
arraySort(arr, size);
// 打印排序后的数组
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
5 4 3 2 1
```