帮我写个C语音程序实现二路归并算法
时间: 2023-03-12 22:44:44 浏览: 67
我可以为您提供一个示例,请参考:#include <stdio.h>//定义函数merge,实现两个有序数组的归并
void merge(int *arr1, int *arr2, int *result_arr, int arr1_size, int arr2_size){
int i = 0;
int j = 0;
int k = 0;
while (i < arr1_size && j < arr2_size){
if (arr1[i] < arr2[j]){
result_arr[k] = arr1[i];
i++;
} else {
result_arr[k] = arr2[j];
j++;
}
k++;
}
while (i < arr1_size){
result_arr[k] = arr1[i];
i++;
k++;
}
while (j < arr2_size){
result_arr[k] = arr2[j];
j++;
k++;
}
}
//定义函数mergeSort,实现归并排序算法
void mergeSort(int *arr, int size){
if (size < 2)
return;
int mid = size / 2;
int left_size = mid;
int right_size = size - mid;
int left_arr[left_size];
int right_arr[right_size];
//填充左边数组
for (int i = 0; i < mid; i++){
left_arr[i] = arr[i];
}
//填充右边数组
for (int i = mid; i < size; i++){
right_arr[i - mid] = arr[i];
}
//递归调用mergeSort,对左右两边的数组进行排序
mergeSort(left_arr, left_size);
mergeSort(right_arr, right_size);
//将排序后的数组归并
merge(left_arr, right_arr, arr, left_size, right_size);
}
int main()
{
int arr[] = {1, 3, 2, 4, 5, 6, 7};
int size = sizeof(arr)/sizeof(arr[0]);
mergeSort(arr, size);
for (int i = 0; i < size; i++){
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)