随笔 - 7  文章 - 27  trackbacks - 0
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿

随笔档案(7)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 1#include <stdio.h>
 2#include <algorithm>
 3using namespace std;
 4#define MAX 1000
 5int buf[MAX];
 6void merge(int a[],int l,int m,int r)
 7{
 8    int pa=l;
 9    int pb=m+1;
10    int k=0;
11
12    while(pa<=&& pb<=r)
13    {
14        if(a[pa]<a[pb])
15            buf[k++]=a[pa++];
16        else
17            buf[k++]=a[pb++];
18    }

19    while(pa<=m)
20        buf[k++]=a[pa++];
21    while(pb<=r)
22        buf[k++]=a[pb++];
23
24    for(int i=0;i<k;i++)
25        a[l+i]=buf[i];
26}

27void mergeSort(int a[],int l,int h)
28{
29    if(l<h)
30    {
31        int m=(l+h)/2;
32        mergeSort(a,l,m);
33        mergeSort(a,m+1,h);
34        merge(a,l,m,h);
35    }

36}

37void printIntArr(int n)
38{
39    printf("%d ",n);
40}

41int main()
42{
43    int a[10]={2,89,-1,8,0,7,13,0,11,3};
44    mergeSort(a,0,9);
45    //merge(a,0,4,9);
46    std::for_each(a,a+10,printIntArr);
47    return 0;
48}
posted on 2010-10-01 22:42 乔宁博 阅读(1698) 评论(2)  编辑 收藏 引用

FeedBack:
# re: 发一个归并排序的递归实现 2010-10-10 23:18 JonsenElizee
It's really a nice one.  回复  更多评论
  
# re: 发一个归并排序的递归实现 2010-10-11 23:54 乔宁博
thanks,man~@JonsenElizee
  回复  更多评论
  

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