一篇文章带你整体了解算法中的基本问题《查找》

简介: 查找本章对算法中的基本问题--查找做了一个简要介绍,包含了一些基本算法思想以及评价,后续文章详细介绍一些算法,欢迎关注本系列。可以转载,但请声明源链接:文章源链接justin3go.com(有些latex公式某些平台不能渲染可查看这个网站)
published: true
date: 2022-1-22
tags: '算法与数据结构'


查找

本章对算法中的基本问题--查找做了一个简要介绍,包含了一些基本算法思想以及评价,后续文章详细介绍一些算法,欢迎关注本系列。

可以转载,但请声明源链接:文章源链接justin3go.com(有些latex公式某些平台不能渲染可查看这个网站)

基础查找方法


评价方法

  • 查找效率
  • 占用存储空间的多少
  • 算法本身复杂程度
  • 平均查找长度ASL

ASL = \sum_{i=1}^{n}p_ic_i\

\

p_i为查找表中第i个元素的概率,

\sum_{i=1}^{n}p_i = 1\

\

c_i为找到表中第i个元素所需比较次数。

顺序查找

从表的一端开始,逐一开始查找。

折半查找

ASL:log_2(n)

适合表结点比较稳定、很少做插入或删除操作的顺序表。

分块查找

插值查找

类似于二分查找,不过不是取中间位置,而是取数据的中值,也要求数据有序。

适用于查找表数据量较大、数据分布比较均匀。

斐波拉契查找

······

二叉排序树(BST)

关键:

按中序遍历该树得到的序列是递增有序的

二叉排序树的查:

性能分析

  • ASL与二叉树的形态有关
  • ASL = (n+1)/2[顺序表]~~~log_2(n)

二叉排序树的删除

  • p是叶子,直接删除。
  • p有一个孩子,将孩子与双亲相连,然后删除。
  • p有两个孩子,用中序遍历的前趋替代p。

平衡二叉树(AVL)及其调整

对给定序列建立BST,使左子树和右子树高度差的绝对值(平衡因子)不超过1。

插入或删除结点后,可能使树失去平衡,需调平:

哈希表



。。。

见散列表实现查找

目录
相关文章
|
6月前
|
算法 搜索推荐
推荐系统,推荐算法01,是首页频道推荐,一个是文章相似结果推荐,用户物品画像构建就是用户喜欢看什么样的文章,打标签,文章画像就是有那些重要的词,用权重和向量表示,推荐架构和业务流
推荐系统,推荐算法01,是首页频道推荐,一个是文章相似结果推荐,用户物品画像构建就是用户喜欢看什么样的文章,打标签,文章画像就是有那些重要的词,用权重和向量表示,推荐架构和业务流
|
7月前
|
人工智能 算法 BI
一篇文章讲明白KMP算法(俗称看毛片算法)
一篇文章讲明白KMP算法(俗称看毛片算法)
70 0
|
7月前
|
算法 JavaScript 安全
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
65 0
|
7月前
|
存储 算法 数据挖掘
力扣18题 四数之和:从基础到精通,一篇文章带你突破算法难关
力扣18题 四数之和:从基础到精通,一篇文章带你突破算法难关
|
8月前
|
存储 算法 网络协议
通过一篇文章让你了解数据结构和算法的重要性
数据结构和算法的重要性,不仅仅在于它们在计算机科学领域中的核心地位,更在于它们对于解决实际问题、优化系统性能、提升软件开发效率等方面的深远影响。在现代信息技术的浪潮中,数据结构和算法如同计算机的“灵魂”,指导着信息的有序存储和高效处理。
228 0
|
8月前
|
存储 搜索推荐 算法
一篇文章学会Java十大排序算法
一篇文章学会Java十大排序算法
48 0
|
8月前
|
算法 Java C++
终于有一篇能让小白更容易理解GC算法的文章了
终于有一篇能让小白更容易理解GC算法的文章了
67 0
|
机器学习/深度学习 算法 Java
算法宝典2——Java版本(此系列持续更新,这篇文章目前3道)(有题目的跳转链接)(此份宝典包含了二叉树的算法题)
算法宝典2——Java版本(此系列持续更新,这篇文章目前3道)(有题目的跳转链接)(此份宝典包含了二叉树的算法题)
|
存储 算法 Java
算法宝典1——Java版本(此系列持续更新,这篇文章有20道)(有题目的跳转链接)(此份宝典包含了链表、栈、队列、二叉树的算法题)(下)
算法宝典1——Java版本(此系列持续更新,这篇文章有20道)(有题目的跳转链接)(此份宝典包含了链表、栈、队列、二叉树的算法题)(下)
|
算法 Java 索引
算法宝典1——Java版本(此系列持续更新,这篇文章有20道)(有题目的跳转链接)(此份宝典包含了链表、栈、队列、二叉树的算法题)(上)
算法宝典1——Java版本(此系列持续更新,这篇文章有20道)(有题目的跳转链接)(此份宝典包含了链表、栈、队列、二叉树的算法题)

热门文章

最新文章