c语言快速排序的方法
快速排序是一种非常高效的排序算法,其基本思想是分治法。以下是使用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]; // pivot element
int i = (low - 1); // Index of smaller element
for (int j = low; j <= high- 1; j++) {
if (arr[j] < pivot) {
i++; // increment index of smaller element
swap(&arr[i], &arr[j]);
}
字符串长度排序c语言 }
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); // pi is partitioning index
quickSort(arr, low, pi - 1); // Sort elements before pi
quickSort(arr, pi + 1, high); // Sort elements after pi
}
}
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函数,该函数递归地对两个子数组进行排序。在主函数中,我们定义了一个数组,并使用quickSort函数对其进行排序。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论