阅读量: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
函数,函数接受一个整型数组和数组的左右边界作为参数。在函数中,我们选择中间的元素作为基准值,并使用两个指针i
和j
从数组的两端向中间遍历,找到需要交换的元素,直到i > j
。然后,递归调用quickSort
函数对分割后的子数组进行快速排序。
在主函数中,我们定义了一个整型数组,并调用quickSort
函数对其进行排序。最后,输出排序前后的数组元素。