会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
Neil's blog
没事练习一下算法:全排列的递归算法。
using
System;
namespace
TotalSort
{
/**/
///
<summary>
///
全排列的递归算法
///
</summary>
class
Class1
{
/**/
///
<summary>
///
应用程序的主入口点。
///
</summary>
[STAThread]
static
void
Main(
string
[] args)
{
//
char[] s = "abcdefghijklmnopqrstuvwxyz".ToCharArray();
char
[] s
=
"
abcde
"
.ToCharArray();
TotalSort(s,
0
);
Console.WriteLine(
"
\n\n总数:{0}
"
, resultCount);
Console.ReadLine();
}
static
int
resultCount
=
0
;
public
static
void
TotalSort(
char
[] list,
int
start)
{
int
end
=
list.Length
-
1
;
if
(start
==
end)
{
resultCount
++
;
Console.WriteLine(list);
}
else
{
for
(
int
i
=
start; i
<=
end; i
++
)
{
char
[] temp
=
new
char
[list.Length];
list.CopyTo(temp,
0
);
char
tempc
=
temp[start];
temp[start]
=
temp[i];
temp[i]
=
tempc;
TotalSort(temp, start
+
1
);
}
}
}
}
}
本来想测试 a - z 的全排列,但估算了一下数目相当惊人,只好作罢。
(这个数目是 26!)
采用了递归仅仅是为了锻炼算法,效率肯定是很低的。
posted on
2005-06-21 11:55
NeilChen
阅读(
2203
) 评论(
3
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部
公告
导航
博客园
新随笔
联系
订阅
管理