八皇后问题的全排列解法
来源:互联网 发布:c语言冒泡排序算法教程 编辑:程序博客网 时间:2024/05/02 04:49
参看我写过的一篇全排列的递归算法
#include <iostream>using namespace std;int total = 0;//交换函数void swapArray(int &a,int &b){ int temp; temp = a; a = b; b = temp;}//判断是否在对角线bool checkDiagonal(int * fullArray,int number){ for(int i=0; i<number; i++) { for(int j=i+1; j<number; j++) { if(i-j == fullArray[i] - fullArray[j] || j-i == fullArray[i] - fullArray[j]) { return false; } } } return true;}//递归函数void fullPermutation(int * fullArray,int start,int end,int number){ //这里,既可以是">=",也可以是">",,应该也可以是"==" if(start>=end) { if(checkDiagonal(fullArray,number)) { for(int i=0; i<number; i++) { cout<<fullArray[i]; } cout<<endl; total++; } } else { for(int i=start; i<=end; i++) { swapArray(fullArray[start],fullArray[i]);//交换 fullPermutation(fullArray,start+1,end,number); swapArray(fullArray[start],fullArray[i]);//注意恢复原样 } }}int main(){ int number;//全排列的长度 cout<<"Number:"<<endl; cin>>number; int * fullArray = new int[number];//动态生成全排列的数组 //初始化 for (int i=0; i<number; i++) { fullArray[i] = i+1; } fullPermutation(fullArray,0,number-1,number); cout<<"Total = "<<total; return 0;}
- 八皇后问题的全排列解法
- 八皇后问题的全排列解法
- 利用全排列八皇后问题的一种解法
- 全排列问题、八皇后问题、组合问题的递归解法
- 八皇后问题的解法
- 字符串数组的全排列到八皇后问题详解
- 字符串数组的全排列到八皇后问题详解
- 运用全排列的方法解决八皇后问题
- 八皇后问题和字符串全排列
- 全排列方法求解八皇后问题
- 八皇后问题--全排列法[Java]
- 全排列与八皇后的转化
- 八皇后问题解法
- 八皇后问题解法
- 八皇后问题解法
- 八皇后问题解法
- 《编程之法》1.3字符串的全排列,组合,重复排列,八皇后问题
- 八皇后问题的递归解法
- Cable Master 实数的二分 hoj
- ant 编译 actionscript project, 生成 swf
- C++ 文件操作
- c++虚函数表实现(转载)
- 多源在线与离线数据读取之四(Android移动端开发读取四川地理信息中心切片底图)
- 八皇后问题的全排列解法
- jQuery禁用键盘后退、F5刷新等快捷键
- sort与qsort
- Thinking Computer
- PKU 2947 Widget Factory
- Nick's Quant Interview Questions
- poj1932-bellman、spfa
- 随机数的产生
- vclZip控件的使用