惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
V
Vulnerabilities – Threatpost
Google Online Security Blog
Google Online Security Blog
Hugging Face - Blog
Hugging Face - Blog
L
LINUX DO - 热门话题
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
D
Docker
C
Cyber Attacks, Cyber Crime and Cyber Security
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
T
Tenable Blog
P
Privacy International News Feed
Google DeepMind News
Google DeepMind News
小众软件
小众软件
Cisco Talos Blog
Cisco Talos Blog
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
A
Arctic Wolf
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cisco Blogs
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
The Hacker News
The Hacker News
Project Zero
Project Zero
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threatpost
V
Visual Studio Blog
The GitHub Blog
The GitHub Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
Jina AI
Jina AI
Cyberwarzone
Cyberwarzone
The Register - Security
The Register - Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Vercel News
Vercel News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
MongoDB | Blog
MongoDB | Blog
U
Unit 42
Scott Helme
Scott Helme
A
About on SuperTechFans
WordPress大学
WordPress大学
F
Fortinet All Blogs
大猫的无限游戏
大猫的无限游戏
G
GRAHAM CLULEY
Latest news
Latest news
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
Schneier on Security

博客园 - 光光GG

最小生成树:使用堆和并查集的kruskal算法 最小生成树prim算法模板 【转】详细解说STL hash_map系列 松弛操作 SPFA算法 bellman-ford(贝尔曼-福特)算法 详细解说 STL 排序(Sort) c++常用算法收集 骨牌覆盖的已有研究 【转】自定义排序函数实现时需要注意的问题 【转】计算C++程序运行时间 解决netbeans乱码问题 在ubuntu8.04 stl vector 技巧 ACM中的64位整数 pku-1095-Trees Made to Order 七种qsort排序方法 memset ,memcpy sql server 通过mdf文件恢复数据库 产生满足正态分布的随机数
【原】八数码问题(8-puzzle Problem)
光光GG · 2008-10-06 · via 博客园 - 光光GG

问题描述:

       有一个3×3的棋盘,其中有0~8九个数字,0表示空格,其他的数字可以和0交换位置。求由初始状态到达目标状态步数最少的解。

       解决八数码问题的常用方法为图搜索法,可用广度优先、深度优先和A*算法实现,其中A*算法又因估价函数的不同而有着不同的搜索时间。

程序说明:

       在本程序中,用A*算法分别实现了八数码问题,其中A*算法的估价函数选择的是“不在位”数和当前层数之和,初始状态和目标状态均可由用户设定,初始状态和目标状态由文件读入(test.txt):

初始状态:

2 8 3
1 6 4

7 0 5

目标状态:

1 2 3
8 0 4

7 6 5

程序的输出为:

输出

 程序为:

八数码问题(8-pullza)

将程序改了下,使用了优先队列和哈希式查找,使在OPEN表找最小f值的时间缩小至NlogN,而且在扩展节点的时候判断节点是否已经扩展过的时间为o(1)了

输入:

test.txt

输出:

result.txt

 程序是改出来的,没有一气呵成的感觉

 Code

 这个程序在visual studio  2008 中运行还是有问题的,如果在g++编译器就没有问题,很复杂的都可以算出来

 因为是只是写程序,对程序有所研究,对问题本身没有研究,应该还有很多可以优化的地方