随笔 - 62  文章 - 96  trackbacks - 0
<2006年10月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(7)

随笔分类(66)

随笔档案(62)

文章分类(31)

文章档案(32)

友情链接

最新随笔

积分与排名

  • 积分 - 231345
  • 排名 - 106

最新评论

阅读排行榜

评论排行榜

转自:http://www.blog.edu.cn/user2/sempr/archives/2006/1142716.shtml
#include<cstdio>
const int MAX = 10000; int a[MAX],b[MAX]; int change; void merge(int p, int q, int r) { int i, j = 0; int begA = p, endA = q, begB = q+1, endB = r; while(begA <= endA && begB <= endB) { if(a[begA] <= a[begB]) b[j++] = a[begA++]; else { b[j++] = a[begB++]; change += q - begA + 1; } } while(begA <= endA) b[j++] = a[begA++]; while(begB <= endB) b[j++] = a[begB++]; for(i = 0; i < j; i++) a[p+i] = b[i]; } void mergeSort(int first, int last) { if(first < last) { int mid = (first + last) / 2; mergeSort(first, mid); mergeSort(mid+1, last); merge(first, mid, last); } } int main() { return 0; }
posted on 2006-10-11 00:27 beyonlin 阅读(1026) 评论(0)  编辑 收藏 引用 所属分类: acm之路

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理