搜索方式的优缺比较

首先先来说明常见的搜索方式:(本人目前遇到的 以后遇到新的搜索方法继续更新)

1.dfs(深度优先搜索)。2.bfs(广度优先搜索)3.迭代加深搜索(IDA*)

一.dfs

搜索方式是按照人为设定方向进行搜索不撞南墙不回头 所以适合做找解是否存在的问题 找最优解一般不会用

其优点是空间开销少(因为状态的记录利用回溯是可以用一块内存空间来实现的)

二,bfs

搜索方式是由当前节点 同时向下一次可能方向的节点拓展 适用于找最优解问题

其缺点是空间开销大 因为 每个节点必须记录目前的状态信息(不像dfs可以用一块内存做修改)

三,迭代加深搜索

搜索方式是利用dfs 模拟bfs 我们每次设一个最大层maxd 表示搜索的最大深度 当dfs搜索到此深度是回溯

不难脑补出dfs 模拟bfs的画面  有许多看似bfs的题目要用此方法解决 因为这个省空间 (甚至省时间 当bfs转移代价过大时 而dfs的转移可能是o(1)的)(uva 旋转游戏)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL 的存储引擎有以下几种: 1. InnoDB: 是 MySQL 的默认引擎,支持事务,外键和行级锁定。 2. MyISAM: 是 MySQL 中最常用的引擎之一,支持全文索引,不支持事务,外键和行级锁定。 3. Memory: 存储在内存中,数据量小,读写非常快,但不支持持久化,重启服务会导致数据丢失。 4. Archive: 用来存储大量只读、不需要更新的历史数据,支持压缩存储,但不支持索引,读写较慢。 5. CSV: 用来存储纯文本的 CSV 格式文件,可以方便地与其他程序进行数据交换,但读写较慢,不支持索引。 MyISAM 适用于读操作较多,事务性要求较低的场景,InnoDB 适用于需要高并发插入、修改、删除操作,对事务性要求高的场景, Memory 是在提高读写效率的前提下牺牲持久性的做法, Archive 是主要用于存储历史数据,并不需要经常读取的场景,CSV 是在数据交换的场景使用. ### 回答2: MySQL的引擎有多种,常见的包括InnoDB、MyISAM、Memory、Archive、Blackhole等。 1. InnoDB引擎: InnoDB是MySQL的默认存储引擎,具备ACID(原子性、一致性、隔离性和持久性)特性。它支持事务和多版本并发控制,提供了行级锁定,保证了并发性和数据完整性。此外,它还支持外键、崩溃恢复功能和自动增长列。然而,InnoDB的性能相对较低,对存储空间要求较高。 2. MyISAM引擎: MyISAM是MySQL中广泛使用的一种引擎,它以其快速的读取速度而闻名。MyISAM具有较低的开销和高效的全文搜索功能。然而,它不支持事务和外键,且在写入操作时的性能较差。此外,MyISAM的崩溃恢复能力较弱。 3. Memory引擎:Memory引擎是将数据存储在内存中的引擎,因此具有极快的访问速度。它适用于临时表和缓存数据的存储,在对性能要求较高且数据丢失可接受的情况下使用。然而,由于数据存储在内存中,当服务器停止或重启时,数据将丢失。 4. Archive引擎:Archive引擎以高压缩比和快速的写入速度著称,适用于存档大量历史数据的场景。但是,它不支持索引,且查询速度较慢。 5. Blackhole引擎:Blackhole引擎是一个特殊的引擎,它可以接收数据的写入操作,但不会对数据进行实际的存储。此引擎适用于数据复制和分发的场景。 综上所述,选择适合的存储引擎应根据具体的应用需求来进行,如需要事务支持和并发控制,应该选择 InnoDB;如果只需要快速的读取速度,可以选择 MyISAM;如果需要高速的内存访问,可以使用 Memory引擎等。 ### 回答3: MySQL的引擎有以下几种: 1. MyISAM引擎:MyISAM引擎是MySQL默认的表引擎。它支持全文索引和高性能的读操作,适用于读频繁、写较少的应用。缺点是不支持事务和行级锁,在并发写入高的情况下性能较差。 2. InnoDB引擎:InnoDB引擎是MySQL的事务性表引擎。它支持事务处理和行级锁定,提供高并发性能和数据完整性。适用于写入频繁的应用。缺点是对于只读操作的性能相对较差。 3. Memory引擎:Memory引擎将表存储于内存中,因此读取速度非常快,适用于对读写性能要求非常高的临时表。缺点是数据存储于内存中,重启服务器或崩溃将导致数据丢失。 4. Archive引擎:Archive引擎提供了极高的压缩比,适用于大容量归档和日志数据的存储,但不支持索引和事务处理。 5. CSV引擎:CSV引擎将数据存储为逗号分隔值 (CSV) 格式文件,便于导出和导入。但是,CSV引擎不支持索引和事务处理。 6. NDB Cluster引擎:NDB Cluster引擎是MySQL集群的存储引擎,提供了高可用性和负载均衡的能力。它适用于高并发的事务处理应用,但对于读取性能要求较高的应用可能不是最佳选择。 每种引擎都有其独特的优缺点,根据应用的具体需求和特点选择合适的引擎可以提高数据库的性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值