欢迎使用CSDN-markdown编辑器
2015-06-27 19:42
295 查看
今天在利用BFS来遍历无向图的时候发现了一个问题 ,怎样标记标记无向图的状态以前是否被访问过来避免重复的访问产生的大量的空间和时间的浪费,最简单的方法就是将无向图的每种状态转化成一个数字,然后再设置一个数组来标记是否被访问过。问题的关键在于怎样将无向图的状态转化成数字。再将无向图具体一点到利用一个数组表示的无向图将设这个数组表示的是3*3的一个无向图
在这3*3的图中分别填上0~8数字,则每个里面有一个元素 ,总共有9!种状态。 那么怎么把放在一维数组变成与之相对应的数字呢?
void computer()//计算阶乘
{
fact[0]=1;
for(int i=1;i<9;i++)
{
fact[i]=i*fact[i-1];
}
}
int code(int *a)//对包含9个元素的数组a进行编码
{
int cnt,count;
int i,j;
count=0;
for(i=0;i<9;i++)
{
cnt=0;
for(j=i+1;j<9;j++)//计算每个元素后面比他小的元素的个数
{
if(a[j]
在这3*3的图中分别填上0~8数字,则每个里面有一个元素 ,总共有9!种状态。 那么怎么把放在一维数组变成与之相对应的数字呢?
int fact[9];//用来存放阶乘数
void computer()//计算阶乘
{
fact[0]=1;
for(int i=1;i<9;i++)
{
fact[i]=i*fact[i-1];
}
}
int code(int *a)//对包含9个元素的数组a进行编码
{
int cnt,count;
int i,j;
count=0;
for(i=0;i<9;i++)
{
cnt=0;
for(j=i+1;j<9;j++)//计算每个元素后面比他小的元素的个数
{
if(a[j]
相关文章推荐
- 九、C# 合式类型
- JavaScript创建对象的几种方式
- 黑马程序员——Java基础——基本概念
- hdu 2082 找单词
- android菜鸟学习笔记6----android布局(一)
- java中的匿名内部类总结
- Facebook IV Winner's Interview: 1st place, Peter Best (aka fakeplastictrees)
- J2EE编辑中的中文乱码解决问题
- Restful WebService简单介绍
- Leveldb/lmdb/comdb 各种存储引擎的个人见解
- servlet 跳转
- [Linux]在终端启动程序关闭终端不退出的方法
- 【编程题】01串排序
- 虚拟机NAT模式下上网
- Coursera台大机器学习课程笔记11 -- Nonlinear Transformation
- UIResponder详解
- 调整屏幕显示亮度
- app项目下文件的作用
- Java内存分析
- 八、C# 值类型