作者: Jowen
查看: 6806|回复: 14
打印 上一主题 下一主题

[源码] 【C#泛型排列组合核心算法】如果觉得好的话要帮忙推荐哦

[复制链接]
跳转到指定楼层
楼主
Jowen 发表于 2015-5-28 21:04:02 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
查看: 6806|回复: 14
说明:
1.排列方法介绍,支持数组,支持字符,支持整形、浮点等等型,还有你想不到的型,具体自己可以测验,因为方法为泛型方法,泛型参数可以自己设定。其中排列有三中重载,方法参数很简单,相信大家应该很容易看的明白。

重载1.全排
重载2.一组数据中任意取几个数排列(数字应小于等于总数,否则返回null)

重载3,指定起始索引到末尾索引排列(举个例子,比如你有一组数据为12345,你指定中间三个排列,那么头尾1、5不变,中间排列,总共六种排列。
组合只有一种方法,具体自己可以看看代码吧。其中算法在附件中。喜欢就赶快购买吧,一个方法一个金币,很值哦。

效果图:


下面我示范一个例子代码:
[C#] 纯文本查看 复制代码
  float[] arr = new float[3];
            for (int i = 0; i < arr.Length; i++)
            {
                arr = i + 1;
            }
            //求排列
            List<float[]> lst_Permutation = PermutationAndCombination<float>.GetPermutation(arr,3);
            //其中
            List<float[]> lst_Combination = PermutationAndCombination<float>.GetCombination(arr, 2);
            Console.WriteLine("排列:");
            int icount = 1;
            foreach (float[] array in lst_Permutation)
            {                
                Console.Write("排列1" + icount++ + "-->");
                foreach (float itemp in array)
                {
                    Console.Write(itemp.ToString() + ",");
                }
                Console.WriteLine();               
            }
            Console.WriteLine("组合:");
            icount = 1;
            foreach (float[] array in lst_Combination)
            {
                Console.Write("组合1" + icount++ + "-->");
                foreach (float itemp in array)
                {
                    Console.Write(itemp.ToString() + ",");
                }
                Console.WriteLine();
            }
            Console.ReadKey();


案例源码下载:


评分

参与人数 4金钱 +9 收起 理由
iNIC + 3 感谢分享,LZ辛苦了~
Elves_sigh + 1 感谢分享,LZ辛苦了~
乔克斯 + 3 感谢分享,LZ辛苦了~
贱贱的贱贱 + 2 感谢分享,LZ辛苦了~

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 转播转播
回复 论坛版权

使用道具 举报

15#
jacksonwong 发表于 2019-5-8 11:04:04 | 只看该作者
谢谢了!
回复

使用道具 举报

14#
huangyouwei 发表于 2015-7-7 07:45:31 | 只看该作者
可以学习一下,楼下辛苦了
13#
iNIC 发表于 2015-7-6 18:48:32 | 只看该作者
没见过,下载研究下吧。。。
12#
peizhidongqq 发表于 2015-7-6 09:48:51 | 只看该作者
此源码 网上有 不需要金币
11#
peizhidongqq 发表于 2015-7-6 09:48:03 | 只看该作者
一个 for循环就行了  还搞2个穷举
string.Join(",",lst_Combination[i])
10#
贱贱的贱贱 发表于 2015-5-29 19:56:36 | 只看该作者
喜欢算法的东西·`` 期待更好的技术贴
9#
 楼主| Jowen 发表于 2015-5-29 17:05:27 | 只看该作者
pain 发表于 2015-5-29 11:19
赞一个!之前也实现过排列组合,但是是在数组中实现的,这个泛型的更有用 ...

谢谢评价,我分不够了,所以发个好资源分享下
8#
pain 发表于 2015-5-29 11:19:04 | 只看该作者
赞一个!之前也实现过排列组合,但是是在数组中实现的,这个泛型的更有用
7#
乔克斯 发表于 2015-5-28 21:38:18 | 只看该作者
Jowen 发表于 2015-5-28 21:37
恩,那些我看到帖子中好多人发了Helper类,所以我一般就发些别人没有发过的,这个就算给他人补个空缺,发 ...

好吧。
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-5-7 05:55, Processed in 0.597083 second(s), 36 queries , Gzip On.

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