哈哈,理解!对于考研来说,快速排序是一个非常经典的排序算法,掌握它有助于提高你的编程能力。下面是一个简单的C语言实现快速排序的代码示例:#include <stdio.h>// 交换两个元素的位置void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp;}// 将数组划分为两个部分,并返回基准元素的索引int partition(int arr[], int low, int high) { int pivot = arr[high]; // 取最后一个元素作为基准 int i = (low - 1); // 初始化小于基准元素的区域 for (int j = low; j <= high - 1; j++) { // 如果当前元素小于或等于基准元素,则将其放入小于区域 if (arr[j] <= pivot) { i++; swap(&arr[i], &arr[j]); } } swap(&arr[i + 1], &arr[high]); return (i + 1);}// 快速排序函数void quickSort(int arr[], int low, int high) { if (low < high) { // 划分数组并获取基准元素的索引 int pivotIndex = partition(arr, low, high); // 对基准元素左边的子数组进行快速排序 quickSort(arr, low, pivotIndex - 1); // 对基准元素右边的子数组进行快速排序 quickSort(arr, pivotIndex + 1, high); }}// 打印数组void printArray(int arr[], int size) { for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } printf("\n");}int main() { int arr[] = {10, 7, 8, 9, 1, 5}; int n = sizeof(arr) / sizeof(arr[0]); printf("原始数组: "); printArray(arr, n); quickSort(arr, 0, n - 1); printf("排序后的数组: "); printArray(arr, n); return 0;}
希望这个代码可以帮助你理解并掌握快速排序算法。祝你考研顺利,老师满意!加油!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |