您的位置:首页 > 其它

next_permutation全排列算法

2013-04-20 09:24 204 查看
C++ STL中的一个可以方便的生成全排列的算法:

#include <algorithm>

bool next_permutation( iterator start, iterator end );

使用举例:

#include <iostream>

#include <algorithm>

#include <string>

 

using namespace std;

 

int main()

{

    string str;

    cin >> str;

    sort(str.begin(), str.end());//必须进行这一步才可以

    cout << str << endl;

    while (next_permutation(str.begin(), str.end()))

        cout << str << endl;

    return 0;

}

qsort(数组名,数组长度,数组中每个元素大小,compare);     compare函数的写法决定了排序是升序还是降序。需要#include<stdlib.h>
例如:
int compare(const void*a,const void*b){return *(*int)a-*(int*)b;}
示例:qsort(a,10,sizeof(int),compare)    //假设已定义了整型数组a[10]
升序排序的写法,如果是:return *(*int)b-*(int*)a   就是降序,不论是什么类型的数组,该函数的形式都是这样的
sort(数组名,数组末地址,compare)    //若不写compare则默认升序排列,需要#include<algorithm>
例如:
sort(a,a+10);        //将数组a以升序排序,假设先前定义了a[10]并输入了数据

摘自百度知道……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: