快速排序c语言代码

admin 34 0

以下是快速排序的C语言代码实现:

```c

#include

void swap(int* a, int* b) {

int t = *a;

*a = *b;

*b = t;

}

int partition(int arr[], int low, int high) {

int pivot = arr[high];

int i = (low - 1);

for (int j = low; j

if (arr[j]

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);

void printArray(int arr[], int size) {

int i;

for (i = 0; i < size; i++) {

printf("%d ", arr[i]);

printf("\n");

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: \n");

printArray(arr, n);

return 0;

```

该代码实现了一个快速排序算法,其中`swap`函数用于交换两个元素的值,`partition`函数用于将数组划分为两个子数组,`quickSort`函数用于递归地调用快速排序算法,`printArray`函数用于打印数组中的元素,在主函数中,我们定义了一个整数数组,并使用快速排序算法对其进行排序,我们打印出排序后的数组。