国产探花免费观看_亚洲丰满少妇自慰呻吟_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武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安宁市| 武城县| 礼泉县| 鲁甸县| 河北省| 铜陵市| 道孚县| 泽州县| 新宾| 邢台县| 靖宇县| 翁源县| 巴塘县| 古交市| 阳城县| 阿坝| 富蕴县| 永春县| 乌兰察布市| 安乡县| 合江县| 南城县| 房山区| 郁南县| 桦南县| 兴宁市| 塔城市| 新竹县| 石狮市| 昌乐县| 邢台县| 黑山县| 驻马店市| 营口市| 景东| 通化县| 盐源县| 龙泉市| 乌兰浩特市| 赞皇县| 闽侯县|