标题:数组折半法问题,,我找不到这个代码中的问题 能帮忙看看么
只看楼主
何以为孤
Rank: 2
等 级:论坛游民
帖 子:61
专家分:10
注 册:2017-10-7
结帖率:89.47%
 问题点数:0 回复次数:3 
数组折半法问题,,我找不到这个代码中的问题 能帮忙看看么
#include<stdio.h>
//声明函数
void CelerityRun(int left, int right, int array[]);

int main()
{
    int i;
    int a[10];

    printf("为数组的赋值:\n");

    //从键盘中为数组赋值

    for (i = 0; i < 10; i++)
    {
        printf("a[%d]=", i);
        scanf_s("%d", &a[i]);
    }

    //从小到大排序

    CelerityRun(0, 9, a);
    //输出数组
    for (i = 0; i < 10; i++)
    {
        printf("%d\t", a[i]);
        if (i == 4)
        {
            printf("\n");
        }
    }
    getchar();
    getchar();
    return 0;
}
   
void CelerityRun(int left, int right, int array[])
{
    int i;
    int j;
    int m, t;

    i = left;
    j = right;                       //求中间值
    m = array[(left + right) / 2];
    do
    {
        while ((array[i] < m) && (i < right));    //从左找小于中值的数
        i++;
        while ((array[j]>m) && (j>left))         //从右找大于中值的数
            j--;

        if (i <= j)                           //找到了一对值
        {
            t = array[i];
            array[i] = array[j];
            array[j] = t;
            i++;
            j--;

        }
    } while (i <= j);     //如果两边 的下标交错,就停止   完成一次

    //递归左半边
    if (left < j)
    {
        CelerityRun(left, j, array);
    }

    //递归右半边
    if (right>i)
    {
        CelerityRun(i, right, array);
    }
}

[此贴子已经被作者于2017-10-31 10:48编辑过]

搜索更多相关主题的帖子: 数组 int left array printf 
2017-10-31 09:47
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
怎么看
2017-10-31 10:42
何以为孤
Rank: 2
等 级:论坛游民
帖 子:61
专家分:10
注 册:2017-10-7
得分:0 
回复 2楼 吹水佬
抱歉   一开始没弄好,,,,我单步调试到CelerityRun(0,9,a)就执行不了了
2017-10-31 10:50
何以为孤
Rank: 2
等 级:论坛游民
帖 子:61
专家分:10
注 册:2017-10-7
得分:0 
没人解答么
2017-11-01 17:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-481965-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013109 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved