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

首頁 > 編程 > C > 正文

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

2020-01-26 14:12:17
字體:
來源:轉載
供稿:網友

這是一個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() 函數的用法(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 罗定市| 永宁县| 陕西省| 宁晋县| 卢湾区| 贞丰县| 肇东市| 巨野县| 汉川市| 东至县| 黄冈市| 河西区| 安新县| 明光市| 甘肃省| 元氏县| 基隆市| 沂南县| 桦甸市| 玛沁县| 宁德市| 正定县| 黎平县| 台南市| 友谊县| 甘谷县| 安达市| 汤原县| 中方县| 安塞县| 宜兴市| 崇义县| 扬中市| 和林格尔县| 泽普县| 新平| 衡阳县| 承德县| 雷州市| 疏勒县| 皮山县|