热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

数据结构基础知识学习(一)

程序设计数据结构算法基本概念:数据:描述客观事物的符号,是计算机中可以操作的对象,能被计算机识别,并输入给

程序设计 = 数据结构+算法


基本概念:


  • 数据:描述客观事物的符号,是计算机中可以操作的对象,能被计算机识别,并输入给计算机处理的符号的集合。
  • 数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。
  • 数据项:一个数据元素可以有若干个数据项组成。数据项是数据不可分割的最小的单位。

数据结构:

概念:相互之间存在一种或者多种特定关系的数据元素的集合。
这里写图片描述

算法:

概念:解决特定问题求解步骤的描述。在计算机中表现为指令的有限序列,每条指令可表示一条或多个操作。

算法的特性:


  • 输入:算法具有零个或者多个输入。
  • 输出:只有一个或多个输出。
  • 有穷性:算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且一个步骤可接受的时间内完成。
  • 确定性:算法的每一步骤都有确定的含义,不会出现二义性。
  • 可行性:算法的每一步都是必须可行的,也就是说,每一步都能够通过执行有限次数完成。

算法分析的分类:


算法存在最好、平均和最坏的情况:


  • 最坏情况:任意输入规模的最大运行次数(上界)这是我们常常关注的情况。
  • 平均情况:任意输入规模的期望运行次数。
  • 最好情况:任意输入规模的最小运行次数,通常最好情况不会出现(下界)

算法的复杂度:时间复杂度和空间复杂度


1、时间复杂度之大O渐进表示法

一个算法语句总的执行次数是关于问题规模N的某个函数,记为f(N),N称为问题的规模。语句总的执行次数记为T(N)当N不断变化时,T(N)也在变化,算法执行次数的增长速率和f(N)的增长速率相同。
则有 T(N)= O(f(N)),称为O(f(N))为时间复杂度的大O渐进表示法。

2、一般算法O(N)的计算方法:


  1. 用常数1取代运行时间中的所有的加法常数。
  2. 在修改后的运行次数函数中,只保留最高阶。
  3. 如果最高阶项系数存在且不是1,则去除与这个项相乘的常数。

时间复杂度典例:

1、二分搜索算法的时间复杂度为O(logN/2)算法中把logN/2=lgN 。。。 M分搜索的算法时间复杂度为logN/M
2、递归算法时间复杂度:递归总次数*每次递归的次数。递归算法的空间复杂度:递归的深度*递归的空间的大小。

空间复杂度:

函数中创建对象的个数关于问题规模函数表达式。一般情况下用O的渐进表示法表示。


推荐阅读
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 词袋模型的通俗介绍
    词,袋, ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 微软发布OneNote for WordPress插件,支持一键从OneNote获取内容发布
    微软今日发布了OneNoteforWordPress插件,该插件支持从OneNote一键获取 ... [详细]
  • 本文介绍了一些好用的搜索引擎的替代品,包括网盘搜索工具、百度网盘搜索引擎等。同时还介绍了一些笑话大全、GIF笑话图片、动态图等资源的搜索引擎。此外,还推荐了一些迅雷快传搜索和360云盘资源搜索的网盘搜索引擎。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
author-avatar
沐月954_290
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有