lv374289630 2014-02-21 03:43
浏览 822

有关linux c,归并排序问题

void merge(int a[], int l, int m, int r)
14 {
15 int i, j, k;
16 int b[r+1];
17 for(i = l; i <= r; i++)
18 b[i] = a[i];
19 i = l; j = m + 1; k = l;
20 while(i <= m && j <= r)
21 if(b[i] < b[j]) a[k++] = b[i++];
22 else a[k++] = b[j++];
23 while(i <= m) a[k++] = b[i++];
24 while(j <= r) a[k++] = b[j++];
25 }
26 void mergesort(int a[], int l, int r)
27 {
28 int mid = 0;
29 if(l >= r)
30 return ;
31
32 mid = (l + r) / 2;
33 mergesort(a, l, mid);
34 mergesort(a, mid+1, r);
35 merge(a, l, mid, r);
36 }
我想问的是,就是在在执行完这个函数石merge(a, l, mid, r);,不久结束了吗,怎么就,又返回到mergesort这个函数去了呢,求牛人,指点一下。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 opencv 无法读取视频
    • ¥15 用matlab 实现通信仿真
    • ¥15 按键修改电子时钟,C51单片机
    • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
    • ¥20 5037端口被adb自己占了
    • ¥15 python:excel数据写入多个对应word文档
    • ¥60 全一数分解素因子和素数循环节位数
    • ¥15 ffmpeg如何安装到虚拟环境
    • ¥188 寻找能做王者评分提取的
    • ¥15 matlab用simulink求解一个二阶微分方程,要求截图