无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

6.7遞歸-八皇后問題(回溯算法)

2021-12-12 12:19 作者:取悅疾風(fēng)  | 我要投稿

內(nèi)容來自尚硅谷Java數(shù)據(jù)結(jié)構(gòu)與java算法(Java數(shù)據(jù)結(jié)構(gòu)與算法)_嗶哩嗶哩_bilibili

寫在前面:本文內(nèi)容大致和原視頻內(nèi)老師的筆記內(nèi)容相同,會偶爾插入自己的注釋和理解,盡量會完成作業(yè)

6.7.1八皇后問題介紹

八皇后問題,是一個古老而著名的問題,是回溯算法的典型案例。該問題是國際西洋棋棋手馬克斯·貝瑟爾于1848年提出:在8*8格的國際象棋上擺放八個皇后,使其不能互相攻擊,即:任意兩個皇后都不能處于同一行、同一列或同一斜線上,問有多少種擺法(92)。

1.????? 第一個皇后先放第一行第一列

2.????? 第二個皇后放在第二行第一列、然后判斷是否OK,如果不OK,繼續(xù)放在第二列、第三列、依次把所有列都放完,找到一個合適

3.????? 繼續(xù)第三個皇后,還是第一列、第二列……直到第8個皇后也能放在一個不沖突的位置,算是找到了一個正確解

4.????? 當(dāng)?shù)玫揭粋€正確解時,在?;赝说缴弦粋€棧時,就會開始回溯,即將第一個皇后,放到第一列的所有正確解,全部得到.

5.????? 然后回頭繼續(xù)第一個皇后放第二列,后面繼續(xù)循環(huán)執(zhí)行1,2,3,4的步驟

6.????? 示意圖

說明:

理論上應(yīng)該創(chuàng)建一個二維數(shù)組來表示棋盤,但是實際上可以通過算法,用一個一維數(shù)組即可解決問題. arr[8]={0,4,7,5,2,6,1,3}//對應(yīng)arr下標(biāo)表示第幾行,即第幾個皇后,ar[i]=val , val 表示第i+1個皇后,放在第+1行的第val+1列

6.7.3八皇后問題算法代碼實現(xiàn)


6.7遞歸-八皇后問題(回溯算法)的評論 (共 條)

分享到微博請遵守國家法律
乌兰察布市| 闵行区| 武宣县| 四子王旗| 长阳| 蛟河市| 乳山市| 皋兰县| 托克托县| 静安区| 巩义市| 丹江口市| 芒康县| 中宁县| 刚察县| 金塔县| 青海省| 静宁县| 富源县| 永德县| 云龙县| 芒康县| 岫岩| 广元市| 万山特区| 阿坝县| 惠东县| 胶南市| 巴林左旗| 福贡县| 自治县| 湖南省| 金坛市| 肃南| 韩城市| 海丰县| 岳西县| 耿马| 邵阳县| 珲春市| 玛多县|