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

   2025-02-21 3880
核心提示:使用快速排序算法,需要先定义一个快速排序函数,然后在主函数中调用该函数。下面是一个示例的C语言快速排序算法的实现:#includ

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

下面是一个示例的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函数对其进行排序。最后,输出排序前后的数组元素。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言