sho*_*bhu 3 sorting algorithm permutation lexicographic
我有点困惑.如何在词典顺序中生成排列的问题与排序问题有什么不同?有人可以用一个例子向我解释一下吗?谢谢
这是两件不同的事情.有N!排列,但只有一个排序顺序(排序排列是按字典顺序最小的排列).
以下是排序排列的示例:
brown fox quick
Run Code Online (Sandbox Code Playgroud)
以下是按字典顺序排列的排列列表:
brown fox quick
brown quick fox
fox brown quick
fox quick brown
quick brown fox
quick fox brown
Run Code Online (Sandbox Code Playgroud)
这是一个C++程序,用于按字典顺序生成排列:
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int main() {
vector<string> s;
s.push_back("quick");
s.push_back("brown");
s.push_back("fox");
sort(s.begin(), s.end());
do {
for(int i = 0 ; i != s.size() ; i++) {
cout << s[i] << " ";
}
cout << endl;
} while (next_permutation(s.begin(), s.end()));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3752 次 |
| 最近记录: |