8皇后以及N皇后算法探究,回溯算法的JAVA實現,非遞歸,數據結構“棧”實現
是使用遞歸方法實現回溯算法的,在第一次使用二維矩陣的情況下,又做了一次改一維的優化
但是算法效率仍然差強人意,因為使用遞歸函數的緣故
下面提供另一種回溯算法的實現,使用數據結構”棧“來模擬,遞歸函數的手工實現,因為我們知道計算機在處理遞歸時的本質就是棧
時間復雜度是一樣的,空間復雜度因為自定義了class,有所上升
經過測試其性能甚至低于上篇博客的遞歸實現
權當是使用數據結構”棧“,解決15皇后的代碼如下:
package com.newflypig.eightqueen; import java.util.Date; import java.util.Stack; /** * 使用數據結構“棧”,模擬遞歸函數 * 實現非遞歸方案的回溯算法 * @author newflydd@189.cn * Time: 2015年12月31日 下午6:13:05 */ public class EightQueen3 { private static final short N=15; public static void main(String[] args){ Date begin =new Date(); long count=0; /** * 初始化棧和棋盤,并向棧中壓入第一張初始化的棋盤 */ Stack
Java 數據結構
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。