算法笔记集中区

  • hash对字符串操作不好操作啊
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<iostream>
using namespace std;
const int maxn=11;
int n,p[maxn],hashTable[maxn]={false};
void generateP(int index)
{
if (index==n+1) {
for(int i = 1; i <=n; i++)
{
cout<<p[i];
}
cout<<endl;
return ;
}
for(int x = 1; x <=n; x++)// 将1到n全部填入p[index]
{
if(hashTable[x]==false)
{
p[index]=x;
hashTable[x]=true;// 首先记录这个数据的数值
generateP(index+1);//从0开始的计算
hashTable[x]=false;//向下的递归的条件
}
}

}
int main()
{
n=3;
generateP(1);
return 0;
}

这个问题就是递归条件如何使用是很大的问题。递归的两个条件:递归边界和递归式。