算法【查找算法的概念】

news2024/11/16 11:37:28

查找算法概念

    • 1、查找的基本概念
    • 2、评价查找算法
    • 3、问题: 查找过程中我们要研究什么?

1、查找的基本概念

查找的概念:
根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素或者记录。
查找算法也可以叫搜索算法。查找算法就是从一个有序数列中找出一个特定的数,常用于判断某个数是否在数列中,或者某个数在数列中的位置。在计算机应用中,查找是常用的基本运算,是算法的重要组成部分。
关键字的概念:
关键字是数据元素(或记录)中某个数据项的值,可以用它可以标识一个数据元素 或记录)。若此关键字 可以唯一标识一个记录,则称此关键字为主关键字(对不同的记录,其主关键字均不同)。反之,称用以识别若千记录的关键字为次关键字。所以当数据元素只有一个数据项时,其关键字就是该数据元素的值。
查找表

  • 查找表是由同一个类型的数据元素或者记录构成的集合,由于集合中的数据元素之间存在着松散的关系,因此查找表是一种应用灵便的结构。
  • 若查找表中存在这样一个记录,则称查找成功。查找结果给出整个记录的信息,或指示该记录在查找表中的位置,否则则称查找不成功。
  • 查找结果给出空记录或者空指针。

查找的目的
对查找表经常进行的操作:

  1. 查询某个特定的数据元素是否在查找表中;
  2. 查询某个特定的元素的属性;

查找表怎么分类
查找表可分为两类:
1)静态查找和动态查找;
静态查找表:

  • 仅作”操作的查找表

动态查找表

  • 做”插入”和“删除”操作的查找表
  • 有时在查询之后,还需要将“查询”结果为“不在查找表中”的数据元素插入到查找表中; 或者,从查找表中删除其“查询”结果为在查找表中”的数据元素,此类表为动态查找表。

注:静态或者动态都是针对查找表而言的。动态表指查找表中有删除和插入操作的表。

2)无序查找和有序查找。

  • 无序查找 :被查找数列有序无序均可;
  • 有序查找 :被查找数列必须为有序数列。

2、评价查找算法

查找算法的评价指标
平均查找长度
在这里插入图片描述
平均查找长度(Average Search Length,ASL):
需和指定key进行比较的关键字的出现次数的期望值,称为查找算法在查找成功时的平均查找长度。
  对于含有n个数据元素的查找表,查找成功的平均查找长度为:ASL = Pi*Ci的和。
  Pi:查找表中第i个数据元素的概率。
  Ci:找到第i个数据元素时已经比较过的次数

3、问题: 查找过程中我们要研究什么?

查找的方法取决于查找表的结构,即表中数据元素是依何种关系组织在一起的。
由于对查找表来说,在集合中查询或检索一个“特定的”数据元素时若无规律可循,只能对集合中的元素一一加以辨认直至找到为止
而这样的“查询”或“检索”是任何计算机应用系统中使用频度都很高的操作,因此设法提高查找表的查找效率,是本章讨论问题的出发点
为提高查找效率,一个办法就是在构造查找表时,在集合中的数据元素之间人为地加上某种确定的约束关系。
研究查找表的各种组织方法及其查找过程的实施

参考资料:数据结构与算法基础-王卓老师

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1467643.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot 手写starter!!!

原因:为什么要手写starter??? 原因:简化功能。 实例:以分页为例:写一个starter。 1.首先定义一个PageX注解。 Target({ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented p…

独立版表情包小程序完整版源码前后端源码,附带系统搭建教程

搭建要求: 1.系统要求Nginx 1.18.0PHP-7.2mysql5.6,开启 ssl,php需要安装 sg11 扩展 2.设置伪静态 location / { index index.php index.html index.htm; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?s$1; } } location /a…

ESP32 LVGL开发板例程使用记录:自制常用汉字字库(一)

需要工具和文件: 1、LVGL官方在线字体转换工具:Online font converter - TTF or WOFF fonts to C array | LVGL 2、字体和常用汉字字库文件:字体字库.7z - 蓝奏云 一、制作过程 1、首先打开字体转换工具 2、填入需要的内容,这里…

ShardingSphere 5.x 系列【15】分布式主键生成器

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列ShardingSphere 版本 5.4.0 源码地址:https://gitee.com/pearl-organization/study-sharding-sphere-demo 文章目录 1. 概述2. 配置3. 内置算法3.1 UUID3.2 Snowflake3.3 NanoId3.4 CosId3.5 Co…

力扣面试经典150 —— 1-5题

力扣面试经典150题在 VScode 中安装 LeetCode 插件即可使用 VScode 刷题,安装 Debug LeetCode 插件可以免费 debug本文使用 python 语言解题,文中 “数组” 通常指 python 列表;文中 “指针” 通常指 python 列表索引 文章目录 1. [简单] 合并…

【Activiti7】全新Activiti7工作流讲解

一、Activiti7概述 官网地址:https://www.activiti.org/ Activiti由Alfresco软件开发,目前最高版本Activiti 7。是BPMN的一个基于java的软件实现,不过 Activiti 不仅仅包括BPMN,还有DMN决策表和CMMN Case管理引擎,并且有自己的用户管理、微 服务API 等一系列功能,是一…

C#与VisionPro联合开发——INI存储和CSV存储

1、INI存储 INI 文件是一种简单的文本文件格式,通常用于在 Windows 环境中存储配置数据。INI 文件格式由一系列节(section)和键值对(key-value pairs)组成,用于表示应用程序的配置信息。一个典型的 INI 文…

Uipath 读取Word模板实现录用通知书PDF批量生成

本文主要讲解如何使用Uipath 读取Excel 面试人员信息表,读取Word模板,再批量生成录用通知书PDF文件,该自动化大大提高了HR 的工作效率。 注:本方案实现采用无代码模式,通过拖拉控件实现。 1. 数据准备 1.1 面试人员…

【力扣】Z 字形变换,模拟 + 直接构造

Z 字形变换原题地址 方法一:利用二维矩阵模拟 对于特殊情况,Z 字形变换后只有一行或只有一列,则变换后的字符串和原字符串相同。 对于一般情况,我们可以考虑按照题目要求,把字符串按照 Z 字形存储到二维数组中&…

高考志愿选择辅助系统

高考志愿选择辅助系统 获取源码——》公主号:计算机专业毕设大全

回归预测 | Matlab实现SSA-BiLSTM-Attention麻雀算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测

回归预测 | Matlab实现SSA-BiLSTM-Attention麻雀算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测 目录 回归预测 | Matlab实现SSA-BiLSTM-Attention麻雀算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基…

数据结构D4作业

1.实现单向循环链表的功能 loop.c #include "loop.h" loop_p create_loop() { loop_p H(loop_p)malloc(sizeof(loop)); if(HNULL) { printf("创建失败\n"); return NULL; } H->len0; H->nextH; ret…

0基础JAVA期末复习最终版

啊啊啊啊啊啊啊啊啊啊,根据网上各位大佬的复习资料,看了很多大多讲的是基础但对内容的整体把握上缺乏系统了解。但是很不幸最终挂科了,那个出题套路属实把我整神了,所以我决定痛改前非,酣畅淋漓的写下这篇文章。。。。…

做抖店想要快速起店怎么办?产品和流量是关键!新手可收藏!

大家好,我是电商小布。 在抖音小店开通完成后,大家考虑的第一件事情,一定是小店如何能够快速出单,成功起店。 店铺出单的重点,其实就在小店的运营上。 那么这么多的环节,关键点在哪呢? 答案…

unity屏幕受伤特效

//使用用途:同于屏幕掉血的后处理特效 //请结合和脚本:BloodScreen 挂载至摄像机使用本特效 //本特效设计之初未考虑兼容移动设备,请注意//使用说明: //掉血获取此脚本,将showBlood设置为true,如果您需要更…

基础光学系列:(一)光学在机器视觉中的角色:原理、应用与学习途径

光学是一门研究光的产生、传播以及与物质相互作用的科学,对于机器视觉技术的发展至关重要。机器视觉利用计算机和相机系统模拟人类视觉,解释和理解图像,广泛应用于制造业、医疗、安全监控等领域。本文旨在探讨光的传播原理及其在机器视觉中的…

【Python-语法】

Python-语法 ■ Python基础■ 数据类型■ 注释 单行注释,多行注释■ 编码方式 ■■■■■ ■ Python基础 ■ 数据类型 ■ 注释 单行注释,多行注释 ■ 编码方式 ■ ■ ■ ■ ■

花生壳内网穿透教程(图文并茂)

目录 前言: 使用教程: 1.注册账号 2.软件下载及安装: 3.账号绑定及花生壳的使用 4.内网穿透的配置(重点) 4.2 新增映射页面: 4.3 上面几种映射的区别: 4.4 上面TCP类型的区别:…

【Android 性能优化:内存篇】——ExoPlayer 释放后内存没有恢复问题探索

背景 最近笔者承接项目的内存优化指标,在内存调研的过程中发现项目中视频播放结束后,内存没有恢复到播放前到水平。项目中用的 EXO 版本为2.19.1,并且笔者自己也写了个简单的 Demo,发现也是如此。虽然有一些偏门方法可以优化&…

第九届大数据与计算国际会议 (ICBDC 2024) 即将召开!

2024年第九届大数据与计算国际会议(ICBDC 2024)将于2024年5月24至26日在泰国曼谷举行。本次会议由朱拉隆功大学工程学院工业工程系主办。ICBDC 2024的宗旨是展示大数据和计算主题相关科学家的最新研究和成果,为来自不同地区的专家代表们提供一…