用快速排序的方法实现对整型数据由小到大进行排序 void quick_sort( int arr[], int len )
时间: 2024-10-23 10:11:03 浏览: 18
05_quick_sort_Quick_快速排序_
快速排序是一种高效的排序算法,它的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,直到整个序列有序。以下是使用C语言实现快速排序对整型数组从小到大排序的一个简单版本:
```c
void quick_sort(int arr[], int low, int high) {
if (low < high) {
// 找到基准元素并分割数组
int pivot = partition(arr, low, high);
// 对基准元素左侧和右侧的部分递归进行快速排序
quick_sort(arr, low, pivot - 1); // 左侧
quick_sort(arr, pivot + 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++; // 移动指针到右一位
swap(&arr[i], &arr[j]); // 交换两个元素的位置
}
}
swap(&arr[i + 1], &arr[high]); // 将基准放到正确的位置
return i + 1;
}
// 用于交换两个元素的辅助函数
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 调用示例
void quick_sort_example(int arr[], int len) {
quick_sort(arr, 0, len - 1);
}
```
阅读全文