面试题答案
一键面试#include <iostream>
// 分区函数
int partition(int arr[], int low, int high) {
int pivot = arr[high]; // 选择最后一个元素作为枢轴
int i = low - 1; // 较小元素的索引
for (int j = low; j < high; j++) {
// 如果当前元素小于等于枢轴
if (arr[j] <= pivot) {
i++; // 增大较小元素的索引
// 交换arr[i]和arr[j]
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
// 交换arr[i + 1]和arr[high](枢轴)
int temp = arr[i + 1];
arr[i + 1] = arr[high];
arr[high] = temp;
return i + 1; // 返回分区点的索引
}