漢諾塔演算法演示1 0

2022-01-19 09:54:03 字數 626 閱讀 8133

工作之餘閒來無聊,於是就有了用js來實現演算法演示的想法,很久以前用js實現過選擇排序,不過源程式找不到了!

漢諾塔的遞迴演算法:

void move(int n,char a,char b,char

c)}

在上面的遞迴演算法中,printf函式可以換成我們js的動畫處理函式。我也是受到了其他人寫的漢諾塔演算法演示的啟發:先在演算法執行完成以後, 才開始執行動畫效果。

【**演示】

在**中

在init()這個方法裡我們可以看

//

初始化hnt.init = function

(opt)

前半部分是將使用到變數重新初始化。

後半部分:

initblock();  // 初始化盤子

move();    // 漢諾塔演算法的執行,僅僅是執行演算法,在這個過程中儲存盤子移動的路徑,但是不執行動畫

start();      // 執行動畫效果。

後話:現在僅僅是用js簡單地實現了漢諾塔的演示過程,下一步打算從流程上和介面上進行優化,也希望能夠學習一些其他的東西。比如:html5的dnd,audio,woker,localstorage,還有jquerymobile的框架

漢諾塔演算法

最簡步驟 2的n次冪 1 為了實現 n個盤從 借助c 從a 移動到 b 思路如下 首先考慮極限當只有乙個盤的時候 只要 盤直接從 a b即可 那麼當有2個盤的時候就只要先把1號盤從a c 然後 把2號盤 a b 再 把 2好盤從 c b 那麼當有n個盤的時候你只要先把 n 1個 盤 借助 b 移動到...

漢諾塔演算法

解法 如果柱子標為abc,要由a搬至c,在只有乙個盤子時,就將它直接搬至c,當有兩個盤子,就將b當作輔助柱。如果 盤數超過兩個,將第三個以下的盤子遮起來,就很簡單了,每次處理兩個盤子,也就是 a b,a c,b c這三個 步驟,而被遮住的部分,其實就是進入程式的遞迴處理。事實上,若有n個盤子,則先移...

漢諾塔演算法

乙個印度傳說 在乙個神廟裡有有乙個漢諾塔,就是乙個銅板上插著3個寶石針,其中一根針從上到下的穿著由小到大的銅片64片,僧人們一次只能移動乙個銅片,並且不論移到哪個針上,必須保持小片在大片上面。僧侶們預言,當所有的銅片都從穿好的那根針上移到另外一根針上時,世界就將在一聲霹靂中消亡。當然,這只是個傳說,...