数据结构作业
第三次:第一题
第三次:第二题
第三次:第二题:"matrix.txt"
第三次:第三题
第三次:第三题:“matrix2.txt”
第四次:题目说明
数据结构第七章章节测试
第四次:第一题
第四次:第二题:shell_sort
第四次:第二题:quick_sort
第四次:第二题:merge_sort
本文档使用 MrDoc 发布
-
+
首页
第四次:第二题:merge_sort
```c #include <stdio.h> void merge_sort(int arr[], int p, int q); void merge(int arr[], int p, int mid, int q); void show_sort(int s[], int n); int main(){ int i = 0; int arr[8] = { 7,5,2,4,1,6,3,0 }; merge_sort(arr, 1, 8); printf("result : \n"); show_sort(arr, 8); return 0; } void merge_sort(int arr[], int p, int q){ int mid; if (arr == NULL || p > q || p == q) { return ; } mid = (p + q) / 2; merge_sort(arr, p, mid); merge_sort(arr, mid + 1, q); merge(arr, p, mid, q); } void merge(int arr[], int p, int mid, int q){ int i,j,k; int leftarr[100], rightarr[100]; int numL = mid - p + 1; int numR = q - mid; for (i = 0; i < numL; i++){ leftarr[i] = arr[p - 1 + i]; } leftarr[i] = 2147483647; // max_int for (i = 0; i < numR; i++){ rightarr[i] = arr[mid + i]; } rightarr[i] = 2147483647; // max_int i = 0; j = 0; for (k = p; k <= q; k++){ if(leftarr[i] <= rightarr[j]){ arr[k - 1] = leftarr[i]; i++; } else{ arr[k - 1] = rightarr[j]; j++; } } show_sort(arr, 8); } void show_sort(int s[], int n){ int i; for(i = 0; i < n; i++){ printf("%3d ", s[i]); } printf("\n"); } ```
cdcdcd
2022年12月9日 00:27
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码