c语言如何实现快速排序

avatar
作者
筋斗云
阅读量:0

以下是使用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; 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 pi = partition(arr, low, high);                  quickSort(arr, low, pi - 1);         quickSort(arr, pi + 1, high);     } }  int main() {     int arr[] = {10, 7, 8, 9, 1, 5};     int n = sizeof(arr) / sizeof(arr[0]);          quickSort(arr, 0, n - 1);          printf("Sorted array: ");     for (int i = 0; i < n; i++) {         printf("%d ", arr[i]);     }     printf("\n");          return 0; } 

在上面的代码中,swap函数用于交换两个元素的值,partition函数用于将数组分区并返回枢轴元素的位置,quickSort函数用于递归调用快速排序。最后在main函数中定义一个数组,并对其进行快速排序,然后输出排序后的数组。

广告一刻

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