在一個(gè)4×4的方格的棋盤上,將數(shù)字1到15代表的15個(gè)棋子以任意的順序置入各方格中,空出一格。要求通過有限次的移動(dòng),把一個(gè)給定的初始狀態(tài)變成目標(biāo)狀態(tài)。移動(dòng)的規(guī)則是:每次只能把空格周圍的四格數(shù)字(棋子)中的任意一個(gè)移入空格,從而形成一個(gè)新的狀態(tài)。為了有效的移動(dòng),設(shè)計(jì)了估值函數(shù)C1(x),表示在結(jié)點(diǎn)x的狀態(tài)下,沒有到達(dá)目標(biāo)狀態(tài)下的正確位置的棋子的個(gè)數(shù)。
請(qǐng)使用該估計(jì)函數(shù),對(duì)圖示的初始狀態(tài),給出使用分支限界方法轉(zhuǎn)換到目標(biāo)狀態(tài)的搜索樹。
設(shè)數(shù)組A有n個(gè)元素,需要找出其中的最大最小值。
(1)請(qǐng)給出一個(gè)解決方法,并分析其復(fù)雜性。
(2)把n個(gè)元素等分為兩組A1和A2,分別求這兩組的最大值和最小值,然后分別將這兩組的最大值和最小值相比較,求出全部元素的最大值和最小值。如果A1和A2中的元素多于兩個(gè),則再用上述方法各分為兩個(gè)子集。直至子集中元素至多兩個(gè)元素為止。這是什么方法的思想?請(qǐng)給出該方法的算法描述,并分析其復(fù)雜性。
(1)基本思想:從頭到尾逐個(gè)掃描,紀(jì)錄最大和最小元素。
輸入:具有n個(gè)元素的數(shù)組
輸出:最大值和最小值
步驟: