使用冒泡法和快速排序法对给定序列排序(递归)C
时间: 2023-07-04 07:28:22 浏览: 96
用c语言实现冒泡排序,选择排序,快速排序
下面是使用冒泡法和快速排序法对给定序列排序(递归)的C语言实现:
1. 冒泡排序法:
```c
void bubbleSort(int arr[], int n) {
if (n <= 1) {
return;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j+1]) {
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
```
2. 快速排序法:
```c
int partition(int arr[], int start, int end) {
int pivot = arr[end];
int i = start - 1;
for (int j = start; j < end; j++) {
if (arr[j] < pivot) {
i++;
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
int tmp = arr[i+1];
arr[i+1] = arr[end];
arr[end] = tmp;
return i+1;
}
void quickSort(int arr[], int start, int end) {
if (start >= end) {
return;
}
int p = partition(arr, start, end);
quickSort(arr, start, p-1);
quickSort(arr, p+1, end);
}
```
使用时,可以按照以下方式调用:
```c
int main() {
int arr[] = {5, 3, 8, 4, 2};
int n = sizeof(arr) / sizeof(int);
// 冒泡排序法
bubbleSort(arr, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 快速排序法
quickSort(arr, 0, n-1);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
阅读全文