欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

再次優(yōu)化過的8皇后問題-創(chuàng)新互聯(lián)

其實(shí)我沒有做到記憶一些已經(jīng)判定過的狀態(tài),增加trace來記憶已判定狀態(tài),去掉重復(fù)判斷再次優(yōu)化過的8皇后問題
#include <stdio.h>

#define N 9 
int q[N] = {0};
int not_end = 1;
int trace = 0;
int cnt = 0;
int sum = 0;

void print_q() {
int i;

for (i=0; i<N; i++) printf("%d", q[i]);

    printf("
");

return;
}

int can_put(int m, int n) {
int i,j;

    sum++;

//row is ok
//colume  for (i=0; i<m; i++) {
if (q[i] == n) return 0;
    }

//left-up  for (i=m-1,j=n-1; i>=0 && j>=0; i--,j--) {
if (q[i] == j) return 0;
    }

//right-up  for (i=m-1,j=n+1; i>=0 && j<N; i--,j++) {
if (q[i] == j) return 0;
    }

return 1;
}

void next_qn() {
while (trace >= 0) {
if (q[trace] < N-1) {
            q[trace]+=1;
break;
        }

        q[trace]= 0;
        trace--;
    }

if ( trace < 0) {
        not_end= 0;
    }else {
int i = trace + 1;
while (i < N) {
            q[i]= 0;
            i++;
        }
    }

return;
}

int main(int argc, char* argv[]) {
while (not_end) {
int i;

for (trace; trace<N; trace++) {
if (!can_put(trace, q[trace])) break;
        }

if (trace == N) {
            cnt++;
//print_q();            trace--;
            next_qn(N-1);
        }else {
            next_qn();
        }
    }

    printf("CNT: %d, times: %d
", cnt, sum);

return 0;
}

再次執(zhí)行就好看多了

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供余杭網(wǎng)站建設(shè)、余杭做網(wǎng)站、余杭網(wǎng)站設(shè)計、余杭網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、余杭企業(yè)網(wǎng)站模板建站服務(wù),10年余杭做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
CNT: 352, times: 72378

real    0m0.007s
user    0m0.004s
sys    0m0.000s

我們可以看到判定次數(shù)已經(jīng)和遞歸一樣,也就是說已經(jīng)成功的用循環(huán)替代了遞歸,并且執(zhí)行的時間少了0.001s,這大概是省在來回搬棧上了。

N = 16,跑了12m,再大,估計我的機(jī)器跑不動了。不過這個算法的時間復(fù)雜度怎么算呢?

CNT: 14772512, times: 842815472

real    12m26.208s
user    12m25.835s
sys    0m0.028s

大概這是我的最終答案了,找時間去網(wǎng)上找找經(jīng)典問題的經(jīng)典解,或許能學(xué)到更有趣的事情。

文章標(biāo)題:再次優(yōu)化過的8皇后問題-創(chuàng)新互聯(lián)
URL鏈接:http://aaarwkj.com/article14/deosge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、云服務(wù)器、網(wǎng)站設(shè)計、網(wǎng)站維護(hù)、企業(yè)網(wǎng)站制作、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
国产精品人一区二区三区| 亚洲天堂欧美天堂淫人天堂| 欧美精品一区二区三区在线| 国产传媒剧情剧资源网站| 一区二区三区视频在线国产| 国产黄色片网站在线观看| 国产激情视频一区二区三区| 国产精品中文字幕第一页| 色婷婷亚洲一区二区三区| 国产精品午夜视频免费观看| 性感91美女白丝在线精品| 欧美高清一区二区三区不卡| 日本黄色av一区二区| 97久久精品亚洲中文字幕| 国产黄片大秀在线观看| 欧美日本午夜福利在线观看| 欧美日本午夜福利在线观看 | 精品国产一区二区三区精品日韩| 日韩精品在线观看不卡| 我的极品小姨在线观看| 国产91黑丝视频在线观看| 日本毛茸茸的丰满熟妇| 亚洲日本一区二区一本一道| 亚洲成人高清av在线| 91国产在线视频免费观看| 久久久久久精品国产av| 日韩欧美第一页在线观看| 曰本真人性做爰视频免费| 亚洲欧美另类不卡专区| 亚洲一区在线观看激情| 日韩精品人妻一区二区三区蜜桃臀| 国产区二区三区在线视频| 午夜性生活免费观看视频| 亚洲精品国产熟女高潮| 久久久人妻91久久久久| 亚洲ve中文字幕久久一区二区 | 欧美精品在线高清观看| 亚洲男女内射在线视频| 国产成人+亚洲欧洲综合| 国产黄色片网站在线观看| 成人亚洲精品一区二区三区|