归并排序
来源:互联网 发布:日本对外贸易数据 编辑:程序博客网 时间:2024/06/03 16:29
#include<stdio.h>void mergearray(int a[], int first, int mid, int last,int temp[]){ int i = first, j = mid + 1; int m = mid, n = last; int k = 0; while (i <= m && j <= n) { if (a[i] <= a[j]) temp[k++] = a[i++]; else temp[k++] = a[j++]; } while (i <= m) temp[k++] = a[i++]; while (j <= n) temp[k++] = a[j++]; for (i = 0; i < k; i++) a[first + i] = temp[i];}void mergesort(int a[], int first, int last, int temp[]){ if (first < last) { int mid = (first + last) / 2; mergesort(a, first, mid, temp); //对左侧排序 mergesort(a, mid + 1, last, temp); //对右侧排序 mergearray(a, first, mid, last, temp); //合并 }}int main(){ int n,i,j,a[100],temp[100]; printf("请输入数组元素个数:\n"); scanf("%d",&n); printf("请分别输入%d个数组元素:\n",n); for (i = 0; i < n; i++) scanf("%d",&a[i]); mergesort(a, 0, n-1, temp); printf("排序后的数组为:\n"); for (i = 0; i < n; i++) printf("%d ",a[i]); return 0;}
阅读全文
0 0
- 归并排序-归并排序
- 归并和归并排序
- 归并与归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 排序::归并
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- Linux下AdobeMediaServer5推流测试
- linux设备和驱动加载的先后顺序
- 前后端分离,nginx配置解决js、css无法加载
- JDBC中对PreparedStatement的理解对数据库自动生成的主键值的获取
- FMDB-FMDatabaseQueue
- 归并排序
- ubuntu 按Tab补全报错
- Java_快速排序
- 机器学习算法 原理、实现与实践 —— 距离的度量
- 机器学习评估指标总结
- codeblock手动添加C++11标准
- 缓存数据库
- C++&Python——【USACO 5.4.1】——Canada Tour
- 牛客网错题集锦4