亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

一個(gè)比較好的全排列算法(C語(yǔ)言)

2019-09-10 09:07:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

 

全排列算法

我有一個(gè)比較好的全排列算法,我驗(yàn)證了3、4、5的結(jié)果是正確的。

程序中沒(méi)有使用遞歸,只是幾個(gè)循環(huán),速度還令人滿意。
在C466A,Win2000的機(jī)器上,進(jìn)行8個(gè)數(shù)字的全排列,結(jié)果不顯示,重定向到一個(gè)文本文件中,耗時(shí)不到一秒鐘

。9個(gè)數(shù)字的全排列耗時(shí)6秒種。10個(gè)數(shù)字的全排列55秒種。(以上都不顯示結(jié)果,均重定向到一個(gè)文本文件)

11個(gè)數(shù)字的全排列(不顯示結(jié)果,在原程序中不定義ISPRINT)耗時(shí)大約16秒鐘。

。

歡迎各位指點(diǎn)

算法為:用兩個(gè)數(shù)組,一個(gè)數(shù)組存放當(dāng)前結(jié)果,第二個(gè)數(shù)組是每一個(gè)數(shù)是否已經(jīng)使用的標(biāo)志。比如對(duì)10個(gè)數(shù)進(jìn)

行全排列,第一個(gè)結(jié)果是:0 1 2 3 4 5 6 7 8 9。
然后把每一個(gè)數(shù)的使用標(biāo)志均置為1。
然后開(kāi)始主循環(huán):
   先打印當(dāng)前的結(jié)果。
   在前一個(gè)得到的結(jié)果中,從后往前找第一個(gè)由小到大排列的數(shù)。每找一次均置當(dāng)前位上的數(shù)字的使用標(biāo)志

為0,然后找第一個(gè)比這個(gè)數(shù)大但是沒(méi)有使用過(guò)的數(shù)。
比如前一個(gè)結(jié)果是:4 1 9 7 8 2 5 0 6 3,那么從后往前第一個(gè)由小到大排列的數(shù)是0,第一個(gè)比0大但是沒(méi)有

使用過(guò)的數(shù)是3(因?yàn)楸?大的數(shù)字里只有6和3)。最后由小到大依次打印剩余沒(méi)有使用過(guò)的數(shù)字。所以下一個(gè)

結(jié)果是4 1 9 7 8 2 5 3 0 6。

源程序?yàn)椋ㄔ贐C++3.0下編譯成功):


#include<stdio.h>/*這兩個(gè)庫(kù)函數(shù)是習(xí)慣性的加上去的^_^。*/
#include<stdlib.h>

#define ISPRINT/*是否打印結(jié)果的標(biāo)志*/
#define MAX 200/*最大的數(shù)*/

unsigned int *_NUM;/*用于存放一條結(jié)果的數(shù)組指針*/
char *_NUMFLAG;/*用于存放是否已經(jīng)使用的標(biāo)志*/

#define NUM(j) (*(_NUM+(j)))/*第j位的數(shù)字*/
#define NUMFLAG(j) (*(_NUMFLAG+(j)))/*數(shù)字j是否已經(jīng)使用的標(biāo)志,0為沒(méi)有使用,1為已經(jīng)使用*/
#define NUMUSE(j) (*(_NUMFLAG+(*(_NUM+(j)))))/*第j位上的數(shù)字是否已經(jīng)使用的標(biāo)志,0為沒(méi)有使用,1為已

經(jīng)使用*/

void main()
{
unsigned int number,j;
int i;
printf("Input number=");scanf("%u",&number);
if((number>=MAX)||(number<=1)){puts("輸入數(shù)據(jù)錯(cuò)誤。");exit(-1);}

/*初始化內(nèi)存和第一個(gè)結(jié)果*/
_NUM=(unsigned int*)malloc(sizeof(unsigned int)*number);
if(!_NUM){puts("分配給_NUM出現(xiàn)內(nèi)存不足");exit(-1);}
_NUMFLAG=(char*)malloc(sizeof(char)*number);
if(!_NUMFLAG){puts("分配給_NUMFLAG出現(xiàn)內(nèi)存不足");exit(-1);}

for(i=0;i<number;i++)NUM(i)=i,NUMFLAG(i)=1;/*初始化第一條結(jié)果和使用標(biāo)志*/

do{/*主循環(huán)*/
 
 #ifdef ISPRINT/*打印結(jié)果*/
 for(j=0;j<number;j++)printf("%d ",NUM(j));/*打印一條結(jié)果。*/
 puts("");/*并換行*/
 #endif  

 NUMUSE(number-1)=0;//置最后一位數(shù)字的使用標(biāo)志為0.

 /*在前一個(gè)結(jié)果中從后往前尋找第一個(gè)從小到大排列的數(shù),并存放到變量j中*/
 for(i=number-2;i>=0;i--){
  NUMUSE(i)=0;
  if(NUM(i)<NUM(i+1))break;
 }

 if(i<0)break;/*從這里退出主循環(huán).*/

 for(j=NUM(i)+1;j<number;j++){
  if(!NUMFLAG(j))break;
 }

 NUMFLAG(j)=1;
 NUM(i)=j;

 for(j=0,i++;i<number;j++)
  if(!NUMFLAG(j))NUM(i++)=j,NUMFLAG(j)=1;
}while(1);
/*釋放內(nèi)存*/
free(_NUM);
free(_NUMFLAG);
}

 

/*程序結(jié)束*/

當(dāng)然了這個(gè)程序的速度并不是最快的,程序中還有很大的優(yōu)化余地,還可以減少一些循環(huán),或者采用其他更好的算法。

下載源程序http://263.csdn.net/FileBBS/files/2001_8/T_387_1.zip

 

上一篇:Foo 的辭源

下一篇:Effective C++ 2e Item43

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

最近中文字幕av免费高清| 国产日韩av高清| 日本不卡一二三| 精品国产一区三区| 国产精品资源| 自拍视频在线网| 国内成人在线| 欧美精品videosex性欧美| 国产伦精品一区二区三区高清| 波多野结衣在线高清| 91成人小视频| 少妇视频一区| 狠狠爱综合网| 国产一区二区三区四区五区六区| 丁香六月久久综合狠狠色| 成 人 黄 色 片 在线播放| 人狥杂交一区欧美二区| 欧美aⅴ99久久黑人专区| 亚洲欧洲av在线| 一区二区三区欧美精品| 亚洲高清成人| 污软件在线观看| 欧美成人午夜电影| 成人在线免费看| 亚洲一区二区三区在线看| 亚洲啊啊啊啊啊| 成人免费毛片app| 成人网ww555视频免费看| 久久久久久久九九九九| 中日韩精品视频在线观看| 天堂av中文字幕| 成人免费在线观看视频网站| 色偷偷av亚洲男人的天堂| 国产99久久久国产精品潘金| 91国内在线| 色欧美乱欧美15图片| 国内毛片毛片毛片毛片毛片| 久久免费av| 国产精品成人观看视频国产奇米| 在线观看电影av| 内射国产内射夫妻免费频道| 中文字幕第66页| 国产黄色小视频在线观看| 天天色天天操天天做| 麻豆传媒免费在线观看| 精品在线观看一区| 欧美激情国产精品免费| 国精产品999国精产品官网| 3d性欧美动漫精品xxxx软件| 亚洲91久久| 91老师国产黑色丝袜在线| 日韩综合在线| 91色琪琪电影亚洲精品久久| av黄色一级片| 中文字幕一区在线观看视频| 瑟瑟视频在线看| 日本三级在线电影| 日本中文字幕一区二区有限公司| 蜜臀精品一区二区三区| 美女视频黄a大片欧美| 亚洲av无码精品一区二区| 中文字幕在线不卡一区二区三区| 91成人在线视频观看| 成人久久一区二区| 欧美三根一起进三p| 日本在线三级| 国产精品久久久久久久久果冻传媒| 香蕉精品久久| 日本中文字幕不卡免费| 在线观看黄色| 国产九色精品成人porny| 潘金莲一级淫片aaaaa| 999免费视频| 18一19gay欧美视频网站| 欧美激情亚洲另类| 神宫寺奈绪一区二区三区| 色狠狠久久av五月综合|| 男人艹女人网站| 成人激情久久| 91免费精品视频| 精品少妇人妻一区二区黑料社区| 亚洲精品7777| 在线观看免费一区| 欧美午夜激情在线| 欧美日韩中文字幕综合视频| 北条麻妃在线观看| 日韩和欧美的一区| 肉大捧一出免费观看网站在线播放| 久久不见久久见免费视频7| 亚洲人性生活视频| 国产超碰在线观看| 粉嫩在线一区二区三区视频| 欧美三片在线视频观看| 国产一本一道久久香蕉| 中文字幕精品一区二| 国产91在线视频蝌蚪| 亚洲成a人片77777kkkk| 99热免费在线观看| 羞羞色院91蜜桃| 超碰在线97国产| 99热在线免费| 欧美残忍xxxx极端| 日韩欧美123| 亚洲资源在线观看| 国产精品直播网红| 中文字幕成人av| 色欧美激情视频在线| 亚洲区欧美区| 日本www视频在线观看| 综合久久av| 欧美一区二区三区免费看| 国产一级视频在线| 亚洲av无一区二区三区| 亚洲国产高清自拍| 四虎永久免费| 久久久女女女女999久久| 国产日韩欧美三区| 日韩精品在线看片z| 久久精品嫩草影院| 北条麻妃一区二区三区在线观看| 欧美一级精品片在线看| 亚洲天堂中文字幕在线观看| 欧美激情黄色片| 糖心vlog在线免费观看| 国产原创一区二区| 九九久久久久久久久激情| 人人澡人人澡人人看欧美| 国产情侣一区在线| 国产一区二区三区小说| 成人av资源在线播放| 丁香另类激情小说| 成年网站免费| 日本不卡高字幕在线2019| 国产成人女人毛片视频在线| 午夜一区二区三区| 先锋影音av资源在线| 91综合网人人| 91精品国产自产精品男人的天堂| 久久这里只有精品一区二区| 成人av在线资源网| 无码国产精品久久一区免费| 欧美极品免费| 日韩色图在线观看| 欧美乱强性伦xxxxx| 在线成人精品视频| 成人免费观看在线视频| 九色视频网站入口| 岛国av在线免费| 天天综合天天综合色| 人妻少妇被粗大爽9797pw| 日韩欧美在线观看视频| 亚洲第一图区| 岛国av在线不卡| 久久九九热免费视频| 男人天堂手机在线| 亚洲成色777777女色窝| 卡一卡2卡三精品| 久久99久久久久久久久久久| 少妇无码av无码专区在线观看| 91在线精品秘密一区二区| 精品视频—区二区三区免费| 日韩av中文字幕第一页| 欧美性生给视频| 69久久精品无码一区二区| www.超碰在线.com| 欧美大片免费| 北条麻妃在线一区二区免费播放| 亚洲日韩中文字幕一区| 中文官网资源新版中文第二页在线观看| 色偷偷中文字幕| 中文字幕在线久热精品| 精品国产免费久久久久久婷婷| 538国产精品一区二区免费视频| 亚洲一级片免费| 国产伦精品一区二区三区精品| 99热这里只有精品7| 国产精品手机在线观看| 日韩av网站在线观看| 五月天色一区| 综合天堂久久久久久久| 久久av一区二区三区漫画| 裸体大乳女做爰69| 黄页网站大全在线观看| 国产又粗又长又黄的视频| 丁香六月色婷婷| 国产三级精品三级在线| 无套白嫩进入乌克兰美女| 成人在线观看免费完整| 精品国产鲁一鲁****| 精品国产一区二区三区久久久久久| 性一交一乱一色一视频麻豆| 亚洲激情一区二区三区| 国产精品麻豆入口| 免费成人深夜夜行网站视频| 人妻无码一区二区三区免费| 中文字幕永久在线| av小次郎收藏| 国产精品人妖ts系列视频| 亚洲av综合一区| 亚洲精品一区二区网址| 欧美成人剧情片在线观看| 色琪琪一区二区三区亚洲区| 1769国内精品视频在线播放| 男女午夜网站| 国产 欧美 日韩 一区| 深夜福利av| 欧美videosex性欧美黑吊| 欧美精品一区免费| 久久免费高清| 欧美在线观看网站| 一本久道久久综合中文字幕| 国产又黄又粗的视频| 天堂www中文在线资源| 99re国产在线播放| 欧美日韩一区在线播放| 亚洲一区二区三区免费视频| 国产一级片免费视频| 在线观看成人免费视频| 国产精品久久精品国产| www.超碰com| 黄色18在线观看| 狠狠久久综合婷婷不卡| 欧美一区二视频在线免费观看| 黄色电影网站在线观看| 日本免费黄网站| 手机在线观看日韩av| 亚洲精品天堂在线观看| 51免费午夜啪啪| 日韩精品无码一区二区三区久久久| 爱福利一区二区| 91成人免费电影| 性欧美1819sex性高清大胸| 你懂得在线观看| 欧日韩一区二区三区| 在线观看国产网站| 亚洲av无一区二区三区久久| 久久久久久久久久久久久久久久久久久久| 日韩不卡手机在线v区| 国产一区丝袜| 91九色porny在线| 欧美国产亚洲一区| 成人免费淫片95视频观看网站| 三级电影在线看| 国模少妇一区二区三区| 九色视频九色自拍| 97中文字幕在线观看| 黄色一区二区在线| 欧美sm精品调教视频| 日本少妇bbwbbw精品| 91亚洲精品在看在线观看高清| 极品少妇一区二区三区精品视频| 国产在线视频你懂的| av在线天堂| 天天干天天操天天爽| 又色又爽又黄无遮挡的免费视频| 中文字幕第一页av| 亚洲国产精品成人精品| 韩国成人漫画| 香蕉视频999| 美国av一区二区三区| 精品国产欧美一区二区五十路| 一级片免费观看视频| 色婷婷精品久久二区二区蜜臀av| 日本一级黄色大片| 国产欧美日韩在线观看视频| 亚洲理伦在线| 久久众筹精品私拍模特| 欧美精品久久久久久久久久| 国产日产精品一区二区三区的介绍| 91精品国产一区二区| 美国av免费观看| 精品一区二区三区四区| 亚洲网址在线观看| 亚洲一线二线三线久久久| 久草成人资源| 91在线观看喷潮| 影音先锋国产精品| 国产精品午夜视频| 欧美人成在线观看网站高清| 日韩一区二区三区免费观看| 亚洲乱码精品| 一线天粉嫩在线播放| 亚洲影院色在线观看免费| 亚洲一区二区视频在线观看| 中文字幕综合网| www.大网伊人| 成人激情视频在线| 亚洲福利在线观看| 91久久伊人青青碰碰婷婷| 欧美黑人xxxxx性受| 日韩av不卡一区二区| 日本天堂网在线观看| 一本大道久久a久久精品综合| 亚洲精品成人天堂一二三| 国产精品精品视频一区二区三区| 99精品电影| 亚洲人成色77777| 青青草av专区| 在线亚洲天堂| 日本十八禁视频无遮挡| 日韩欧美亚洲日产国产| 国产美女极度色诱视频www| 国产经典一区| 久久久久亚洲| 日本成人在线视频网址| 国产福利一区在线| 精品av在线播放| 91久久在线视频| 中文字幕伦理免费在线视频| 中文字幕免费在线视频| 色天使在线观看| 亚洲成人手机在线| 国产欧美综合一区| 亚洲AV无码一区二区三区性| av官网在线观看| 老司机午夜福利视频| japonensisjava老师可播放| 日韩av在线网| 99久久自偷自偷国产精品不卡| 国产欧美精品在线观看| 一区二区美女视频| 佐佐木明希av| 91蜜桃网站免费观看| 成av人片在线观看www| 91欧美精品午夜性色福利在线| 青青影院一区二区三区四区| 激情综合色综合久久| 国产精品久久久久久久久久小说|