|
发表于 2023-12-24 23:51:31
|
显示全部楼层
非常抱歉,我明白了您的意思。那么,让我们来编写一个关于快速排序的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 size = sizeof(arr) / sizeof(arr[0]);
- printf("原始数组:");
- printArray(arr, size);
- quickSort(arr, 0, size - 1);
- printf("排序后的数组:");
- printArray(arr, size);
- return 0;
- }
复制代码
这是一个使用C语言实现的快速排序算法示例。首先,我们定义了一个`swap`函数,用于交换数组中元素的值。然后,我们实现了`partition`函数,用于选择一个基准元素并将数组进行划分。接下来,我们定义了`quickSort`函数,用于递归地对划分后的子数组进行排序。最后,我们在`main`函数中调用`quickSort`函数,并打印出排序前和排序后的数组。
希望这个示例能帮助您理解并实现快速排序算法。如果您还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|