程式設計思路如下(擷取自《erlang程式設計》3.8):
除錯的**:
#include #include正式**:#include
using
namespace
std;
void insert(string &str,char ch, vector&aa)
}void fun(string array, vector&a)
string array2 = array.substr(1,n-1
);//
cout << "array2=" << array2aa;
char ch = array[0
]; fun(array2,a);
//cout << "a.size()=" << a.size() << endl;
n =a.size();
for (int i=0; i)
a.resize(aa.size());
copy(aa.begin(),aa.end(),a.begin());
}int main(int argc, char *argv)
cout
<
退出請輸入:exit
"<
cout
<< "
請輸入待排列的序列(如:abc):";
cin>>str;
}system(
"pause");
return
exit_success;
}
#include #include#include
using
namespace
std;
void insert(string &str,char ch, vector&aa)
}void fun(string array, vector&a)
string array2 = array.substr(1,n-1
); vector
aa;char ch = array[0
]; fun(array2,a);
n =a.size();
for (int i=0; i)
a.resize(aa.size());
copy(aa.begin(),aa.end(),a.begin());
}int main(int argc, char *argv)
cout
<
退出請輸入:exit
"<
cout
<< "
請輸入待排列的序列(如:abc):";
cin>>str;
}system(
"pause");
return
exit_success;
}
全排列的實現
在c 的模板中,有一對專門用於實現數字或字元全排列的模板 next permutation biter,biter 和prev permutation biter,biter 前者實現向後排列,後者實現向前排列,即前者在原順序上依次產生較大的排列,後者則相反。舉個例子 假設需要產生以 354 為基礎...
全排列實現
參考的是 演算法競賽入門 p185 方法是用乙個額外的陣列a,不斷放入物件到這個陣列中,直到n個為止。include using namespace std int total 0 void permutation char s,char a,int n,int cur total cout end...
STL中的全排列函式實現全排列
標頭檔案 inlcude這裡先說兩個概念 下乙個排列組合 和 上乙個排列組合 對序列 每乙個元素都比後面的小,按照字典序列,固定a之後,a比bc都小,c比b大,它的下乙個序列即為,而的上乙個序列即為,同理可以推出所有的六個序列為 其中沒有上乙個元素,沒有下乙個元素。a.函式模板 next permu...