实验名称
快速排序问题实验
问题描述
选择数组的第一个元素作为基准,并将数组分为两个部分:左边的元素小于基准,右边的元素大于基准。
代码演示
c
#include <stdio.h>
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pivot = arr[low];
int left = low + 1;
int right = high;
while (left <= right) {
while (left <= right && arr[left] <= pivot) {
left++;
}
while (left <= right && arr[right] >= pivot) {
right--;
}
if (left < right) {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
}
}
arr[low] = arr[right];
arr[right] = pivot;
quickSort(arr, low, right - 1);
quickSort(arr, right + 1, high);
}
}
int main() {
int arr[] = {24, 7, 23, 39, 5, 43};
int n = sizeof(arr) / sizeof(arr[0]);
quickSort(arr, 0, n - 1);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
分治算法快速排序问题实验报告
点赞关注,感谢您的支持 ^ _ ^如有错误,还请您批评指正🤝 🤝 🤝