c语言快速排序算法怎么使用

avatar
作者
筋斗云
阅读量:1

使用快速排序算法,需要先定义一个快速排序函数,然后在主函数中调用该函数。

下面是一个示例的C语言快速排序算法的实现:

#include <stdio.h> void quickSort(int arr[], int left, int right) { int i = left, j = right; int pivot = arr[(left + right) / 2]; // 选择中间的元素作为基准值 // 分割数组 while (i <= j) { while (arr[i] < pivot) i++; while (arr[j] > pivot) j--; if (i <= j) { // 交换元素 int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; i++; j--; } } // 递归调用快速排序 if (left < j) quickSort(arr, left, j); if (i < right) quickSort(arr, i, right); } int main() { int arr[] = {5, 9, 3, 1, 2, 8, 4}; int size = sizeof(arr) / sizeof(arr[0]); printf("Before sorting:\n"); for (int i = 0; i < size; i++) printf("%d ", arr[i]); quickSort(arr, 0, size - 1); printf("\nAfter sorting:\n"); for (int i = 0; i < size; i++) printf("%d ", arr[i]); return 0; } 

该示例首先定义了一个quickSort函数,函数接受一个整型数组和数组的左右边界作为参数。在函数中,我们选择中间的元素作为基准值,并使用两个指针ij从数组的两端向中间遍历,找到需要交换的元素,直到i > j。然后,递归调用quickSort函数对分割后的子数组进行快速排序。

在主函数中,我们定义了一个整型数组,并调用quickSort函数对其进行排序。最后,输出排序前后的数组元素。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!