国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

詳談全排列next_permutation() 函數的用法(推薦)

2020-05-23 13:50:12
字體:
來源:轉載
供稿:網友

這是一個c++函數,包含在頭文件<algorithm>里面,下面是基本格式。

1 int a[];2 do{3   4 }while(next_permutation(a,a+n));

下面的代碼可產生1~n的全排列

#include <stdio.h>#include <algorithm>using namespace std;int main(){  int n;  while(scanf("%d",&n)&&n){    int a[1000];    for(int i=0;i<n;i++){      scanf("%d",&a[i]);    }    sort(a,a+n);//可以自行測試一下刪除后的結果    do{      for(int i=0;i<n;i++)        printf("%d ",a[i]);      printf("/n");    }while(next_permutation(a,a+n));  }  return 0;}

例如輸入

3

1 0 2

如果有sort()

輸出為

0 1 2
0 2 1
1 0 2
1 2 0
2 0 1
2 1 0

若無

則輸出為

1 0 2
1 2 0
2 0 1
2 1 0

可以發現少了許多種組合方法。

不過,仔細比較各種組合方法和有無sort()的輸出,可以發現函數next_permutation()是按照字典序產生排列的,并且是從數組中當前的字典序開始依次增大直至到最大字典序。

以上這篇詳談全排列next_permutation() 函數的用法(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 营口市| 洱源县| 凌源市| 崇信县| 东平县| 木兰县| 潜江市| 怀安县| 抚顺市| 广丰县| 湘潭县| 西华县| 宁波市| 和平区| 青神县| 宁蒗| 江陵县| 瓮安县| 鹤岗市| 福州市| 上饶市| 桦南县| 西丰县| 浦东新区| 高阳县| 临汾市| 阿克陶县| 西安市| 甘泉县| 牡丹江市| 梁山县| 金昌市| 张家港市| 河北区| 桃园市| 阜宁县| 启东市| 金溪县| 贺州市| 商南县| 邹城市|