快速排序 c语言代码实现_c语言简单快速排序 💻🚀
🔥 快速排序是一种非常高效的排序算法,它基于分治法的思想,通过递归的方式将数据分为两部分,使得一部分的数据都比另一部分小。这种算法的平均时间复杂度为O(n log n),非常适合处理大规模数据。
📝 下面是用C语言实现快速排序的一个简单例子:
```c
include
// 函数声明
void quickSort(int arr[], int low, int high);
int partition(int arr[], int low, int 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: \n");
for (int i=0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
// 快速排序函数
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 partition(int arr[], int low, int high) {
int pivot = arr[high]; // 选择最后一个元素作为基准值
int i = (low - 1); // 指向小于基准值的最后一个元素
for (int j = low; j <= high- 1; j++) {
if (arr[j] <= pivot) {
i++;
// 交换arr[i]和arr[j]
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
// 交换arr[i+1]和arr[high](即基准值)
int temp = arr[i + 1];
arr[i + 1] = arr[high];
arr[high] = temp;
return (i + 1);
}
```
💻 这个简单的实现展示了如何使用C语言来实现快速排序算法。通过递归调用`quickSort`函数,并使用`partition`函数来划分数组,可以高效地完成排序任务。希望这个示例对你理解快速排序有所帮助!🚀
版权声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。