| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 564 人关注过本帖
标题:有关递归问题,各位高手帮忙看下谢了
只看楼主 加入收藏
wycwyc
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2008-10-18
收藏
 问题点数:0 回复次数:4 
有关递归问题,各位高手帮忙看下谢了
用递归算法对int型数组进行双向选择排序。“双向选择排序”法是每次在一个未排序的子表中选出一个最小的和最大的元素分别与子表的第一和最后一个元素交换,子表不断缩小直至子表中不足两个元素。

完全没思路啊!什么是递归还不大懂帮帮忙谢了!!
搜索更多相关主题的帖子: 递归 
2008-10-31 13:58
wycwyc
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2008-10-18
收藏
得分:0 
有人会吗
2008-10-31 15:11
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
写了一个,不过可能有问题………………
程序代码:
#include <stdio.h>
#include <stdlib.h>

#define SWAP(a, b) {int t__=(a); (a)=(b); (b)=t__; }

void sort(int *a, int len)
{
    printf("sort(%d, %d)\n", 0, len);
    if (len > 1)
    {
        int min = 0, max = len - 1, i;
        for (i = 1; i < len; i++)
            if (a[i] < a[min])
                min = i, printf("a:%d ", i);
            else if (a[i] > a[max])
                max = i, printf("b:%d ", i);
        SWAP(a[0], a[min]);
        SWAP(a[len - 1], a[max]);
        return sort(a + 1, len - 2);
    }
}

int main(void)
{
    int i, a[] = {3, 1, 4, 2};
    sort(a, 4);
    for (i = 0; i < 4; i++)
        printf("%d ", a[i]);
    printf("\n");
    return 0;
}


2008-10-31 16:02
wycwyc
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2008-10-18
收藏
得分:0 
还是谢谢~~不过主要思想是什么样的啊
2008-10-31 16:41
wycwyc
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2008-10-18
收藏
得分:0 
有人么?
2008-11-01 00:01
快速回复:有关递归问题,各位高手帮忙看下谢了
数据加载中...
 
   



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

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