归并排序1
2013-12-16 13:45
288 查看
#include<stdio.h> void merge_sort(int* A, int x, int y, int* T) { if(y - x > 1) { int m = x + (y - x)/2; int p = x, q = m, i = x; merge_sort(A, x, m, T); merge_sort(A, m, y, T); while(p < m|| q < y) { if(q >= y || (p < m && A[p] <= A[q])) T[i++] = A[p++]; else T[i++] = A[q++]; } for(i = x; i < y; i++) A[i] = T[i]; } } int main() { int a[1000], t[1000], n, i; scanf("%d", &n); for(i = 0; i < n; i++) scanf("%d", &a[i]); merge_sort(a, 0, n, t); for(i = 0; i < n; i++) printf("%d ", a[i]); return 0; }
相关文章推荐
- RedHat安装oracle 10g系统环境配置脚本
- 面试10大算法汇总+常见题目解答
- Oracle 常用的几个命令在SQL*PLUS中
- linux之 查看文件命令cat,more,less,tail,tac,nl,od .
- php.ini 中开启短标签 <?=$?>
- jpeg
- [置顶] 每日震精图
- 几种简单的排序算法
- 机器学习资料总结
- Oracle查看用户表
- python3.2安装tornado
- js多个引力小球计算
- 电驴不能下载的办法
- Office 365系列(三) -Office 365 Pro plus 安装
- test9-3(学生信息类)
- UVa 10985 Rings'n'Ropes / floyd + dfs
- 远程桌面限制用户使用同一个会话
- LeetCode—Evaluate Reverse Polish Notation解题报告
- Log4j例子
- 我的BB-Black之旅……(一)