C语言排序两个一维数组
时间: 2024-12-23 21:25:45 浏览: 2
冒泡排序法的算法-c语言程序设计 数组与结构 ppt
在C语言中,可以使用不同的算法对两个一维数组进行排序,比如冒泡排序、选择排序、插入排序、快速排序、归并排序等。这里我们以常见的快速排序为例,给出如何对两个整型数组进行排序。
**快速排序示例:**
```c
#include <stdio.h>
// 快速排序函数
void quicksort(int arr[], int left, int right) {
if (left < right) {
int pivot = arr[left]; // 选取第一个元素作为基准
int i = left, j = right;
while (i < j) {
// 从右向左找到第一个小于基准的元素
while (i < j && arr[j] >= pivot)
j--;
// 将该元素放到基准左边
arr[i] = arr[j];
// 从左向右找到第一个大于基准的元素
while (i < j && arr[i] <= pivot)
i++;
// 将该元素放到基准右边
arr[j] = arr[i];
}
// 放置基准到最终位置
arr[i] = pivot;
// 对左右两个部分递归排序
quicksort(arr, left, i - 1);
quicksort(arr, i + 1, right);
}
}
int main() {
int array1[] = {5, 3, 8, 6, 7};
int array2[] = {2, 4, 9, 1, 0};
int n1 = sizeof(array1) / sizeof(array1[0]);
int n2 = sizeof(array2) / sizeof(array2[0]);
quicksort(array1, 0, n1 - 1);
quicksort(array2, 0, n2 - 1);
printf("Sorted Array 1: ");
for (int i = 0; i < n1; i++)
printf("%d ", array1[i]);
printf("\nSorted Array 2: ");
for (int i = 0; i < n2; i++)
printf("%d ", array2[i]);
return 0;
}
```
**
阅读全文