给你一个非空数组nums,找出此数组中的最大数。 c语言快速排序算法实现
时间: 2023-08-06 18:05:55 浏览: 100
好的,针对你的问题,我来给你讲解一下快速排序算法的C语言实现方法。
快速排序是一种常见的排序算法,其时间复杂度为O(nlogn),具有较高的效率。下面是C语言实现快速排序的代码:
```C
void quickSort(int* nums, int left, int right) {
if (left >= right) return; // 递归终止条件
int i = left, j = right, pivot = nums[left];
while (i < j) {
while (i < j && nums[j] <= pivot) j--;
nums[i] = nums[j];
while (i < j && nums[i] >= pivot) i++;
nums[j] = nums[i];
}
nums[i] = pivot;
quickSort(nums, left, i - 1);
quickSort(nums, i + 1, right);
}
```
其中,参数nums为要排序的数组,left为数组的左边界,right为数组的右边界。函数首先判断递归终止条件,若左边界大于等于右边界,则返回;否则,以nums[left]作为基准值,将数组分为两部分,左边的数都小于等于基准值,右边的数都大于等于基准值。然后,对左右两部分递归调用快速排序函数,直到排序完成。
最后,如果你想找到数组中的最大数,只需要在排序完成后,返回数组最后一个元素即可。
```C
int getMax(int* nums, int size) {
quickSort(nums, 0, size - 1);
return nums[size - 1];
}
```
这样,就可以实现在给定数组中找到最大数的功能了。
阅读全文