面试题答案
一键面试#include <stdio.h>
// 交换两个整数
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 分区函数
int Partition(int arr[], int left, int right) {
// 选择最右边的元素作为基准元素
int pivot = arr[right];
int i = left - 1; // 小于等于基准元素子数组的边界
for (int j = left; j <= right - 1; j++) {
// 如果当前元素小于等于基准元素
if (arr[j] <= pivot) {
i++; // 扩大小于等于基准元素子数组的边界
swap(&arr[i], &arr[j]);
}
}
swap(&arr[i + 1], &arr[right]);
return i + 1;
}