时间:2021-05-20
本文实例讲述了C#通过yield实现数组全排列的方法。分享给大家供大家参考。具体分析如下:
从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。
static void Swap<T>(ref T a, ref T b){ T t = a; a = b; b = t;}static IEnumerable<int[]> Perm(int[] arr, int pos){ if (pos == arr.Length) { yield return arr; } for (int i = pos; i < arr.Length; ++i) { Swap(ref arr[i], ref arr[pos]); foreach (var j in Perm(arr, pos + 1)) yield return j; Swap(ref arr[i], ref arr[pos]); }}static void Main(string[] args){ foreach (var i in Perm(new int[] { 1, 2, 3, 4 }, 0)) { Console.WriteLine(string.Join(",",i.Select(j=>j.ToString()).ToArray())); }}希望本文所述对大家的C#程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了python通过yield实现数组全排列的方法。分享给大家供大家参考。具体分析如下:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来
本文实例讲述了C#求数组中元素全排列的方法。分享给大家供大家参考。具体如下:1.算法描述全排列的第一项是该数组的升序排列,最后一项是该数组的降序排列。本文中用到
本文实例讲述了JavaScript使用yield模拟多线程的方法。分享给大家供大家参考。具体分析如下:在python和C#中都有yield方法,通过yield可
foreach遍历是C#常见的功能,而本文通过实例形式展现了C#使用yield关键字让自定义集合实现foreach遍历的方法。具体步骤如下:一般来说当我们创建自
本文实例讲述了php和C#的yield迭代器实现方法对比。分享给大家供大家参考,具体如下:yield关键字是用来方便实现迭代器的,免去了手工写迭代器的繁琐。迭代