鱼C论坛

 找回密码
 立即注册
查看: 2135|回复: 10

往数组里面插数,怎么破??c语言实现

[复制链接]
头像被屏蔽
发表于 2014-11-30 16:10:26 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-30 16:38:02 | 显示全部楼层
链表吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-30 17:03:43 | 显示全部楼层
a可以相邻吗。可以插到数组头或尾吗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-30 17:09:39 | 显示全部楼层
问题都没有说清楚 怎么实现
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2014-11-30 18:48:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2014-11-30 18:50:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-30 19:08:33 | 显示全部楼层
随便插的话个人感觉情况会很复杂。这是啥题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-1 23:23:02 | 显示全部楼层
随意插的话情况很多啊,虽然原理不难,但是情况很多..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-3 07:25:26 | 显示全部楼层
10*10*10*10*10?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-4 02:03:31 | 显示全部楼层
本帖最后由 firefox_zyw 于 2014-12-4 02:07 编辑

题目是这样的:有一个数组里面有10个b,然后现在有5个a,把a插入b里面,最后有多少种排列,并把排列打印出来????想了好久,

思路:  5个'a'和10个'b'不管怎么排列, 最后肯定落在如下的15个槽中:
          1  2  3  4  5  6  7  8  9  10  11  12  13  14  15
         虽然a和b有多个不唯一, 但槽具有唯一性, 与上面编号一 一对应.  
         所以, 问题可转换成:
         从上面15个槽中选择5个槽用来放入'a'。这样能保证取出来的排列组合既互不相同又包含所有情形。
         根据排列组合原理结果应为:
         C 5(上标)  15(下标) = (15 * 14 * 13 * 12 * 11) / (5 * 4 * 3 * 2 * 1) = 3003

编程:采用迭代思想,编写程序实现数学中的排列组合算法  C m(上标)  n(下标)
            void sort(int nPos, int m, int n);
                     int nPos;               //数组游标,标识当前正在处理的数组
                     int m;                   //m值,这里是5
                     int n;                    //n值,这里是10
          数据结构:
            const int list[15] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};    //槽的编号

          过程:
            主程序调用:
                sort(0, m, n);      对list[]从0位置开始的数组(整个数组)打印排列组合 C m(上标)  n(下标)的所有情况
                从0位置开始处理,分两种情况:
                1. 取0位置元素: 则后续需要从 (n-1)个元素中取出 (m-1)个元素,即:
                    sort(1, m-1, n-1);
                2. 不取0位置元素:则后续需要从 (n-1)个元素中取出 (m)个元素,即:
                    sort(1, m, n-1);
                sort函数不断迭代,且 m-1, n-1,不断收缩,当m,n趋于0时,迭代终止回溯。

代码:




代码

代码

运行结果

运行结果

评分

参与人数 1鱼币 +1 收起 理由
694861283 + 1 不错……

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2014-12-4 20:25:08 | 显示全部楼层
能详细描述一下这个问题吗?
如果不明白 QQ联系我425947506
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 10:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表