Skip to Content
算法技术手册(原书第2 版)
book

算法技术手册(原书第2 版)

by George T.Heineman, Gary Pollice, Stanley Selkow
August 2017
Intermediate to advanced
360 pages
8h 35m
Chinese
China Machine Press
Content preview from 算法技术手册(原书第2 版)
搜索算法
91
搜索算法
search (C,t)
iter = C.begin()
while iter
C.end() do
e = iter.next()
if e = t then
return true
return false
end
按照从
0
n
- 1
的顺序访问每个元素。
迭代器一直访问每个元素直到最后一个元素为止。
迭代器
中一个接一个取出元素。
5.1.2 使用环境
有时需要在一个不知道是否有序的集合中频繁地查找元素。如果无法获取该集合的信
息,那么采用
顺序查找
是一个不错的方法,它以穷举集合中每个元素的方式来完成这项
工作。如果集合只能通过迭代器来访问,那么顺序搜索就是唯一能使用的搜索算法。
如果集合无序并且以链表的形式存储,那么插入元素需要常数时间(简单插入表尾即可)。
但是如果需要频繁地将元素插入数组中,那么这时就需要需要动态地管理数组。这个特
性要么由编程语言提供,要么由程序员自己实现。无论如何,搜索一个元素的期望时间
O
(
n
)
,因此,找到并且移除一个元素需要至少
O
(
n
)
的时间。
顺序搜索
在对于能搜索的元素类型几乎没有限制。唯一的要求就是必须有一个匹配函数
来决定当前元素是否就是目标元素。通常匹配函数交由元素自己计算管理。
5.1.3 决方案
顺序搜索
的实现非常最简单。例
5-1
给出了顺序搜索的
Python
实现。
5-1
:顺序搜索的
Python
实现
def sequentialSearch(collection, t):
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

Aurélien Géron
Go语言编程

Go语言编程

威廉·肯尼迪

Publisher Resources

ISBN: 9787111562221