当前位置: 首页 > news >正文

数据结构基础(2)

1.什么是算法?

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

算法定义中,提到了指令,指令能被人或机器等计算装置执行。它可以是计算机指令,也可以是我们平时的语言文字。

2.算法有哪些特性呢?

算法具有五个基本特性:输入、输出、有穷性、确定性和可行性。

输入和输出

  • 算法具有零个或多个输入
  • 算法至少有一个或多个输出

有穷性

  • 有穷性:指算法在执行有限的步骤之后 自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。

确定性

  • 确定性:算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成。 

可行性

  • 可行性:算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成。 

3.算法设计有哪些要求呢?

正确性

  • 正确性:算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性,正确反映问题的需求,能够得到问题的答案。

可读性 

  • 可读性:算法设计的另一目的是为了方便阅读、理解和交流。

健壮性

  • 当输入的数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果。 

时间效率和存储量低

  •  设计算法应该尽量满足时间效率高和存储量低的需求。

4.什么是算法效率的度量方法?

事后统计方法

  • 事后统计方法:这种方法主要是通过设计好的测试程序和数据,利用计算机对不同算法编制的程序的运行时间进行比较暗,从而确定算法效率的高低。(但由于有很大缺陷,一般不采用)

事前分析估算方法 

  • 事前分析估算方法:在计算机程序编制前,依据统计方法对算法进行估算。

一个用高级编程语言编写的程序在计算机上运行所消耗的时间取决于:

  1.  算法才用的策略、方法。
  2. 编译产生的代码质量。
  3. 问题的输入规模。
  4. 机器执行指令的速度。

注 :(1)是算法好坏的根本

        (2)要由软件来支持

        (4)要看硬件性能

当然,我们说如果抛开这些,一个程序的运行时间,依赖于算法的好坏和问题的输入规模。所谓问题的输入规模是输入量的多少。

在分析程序的运行时时,最重要的是把程序看成是独立于程序设计语言的算法或一系列步骤。 

 5.什么是算法的时间复杂度?

定义:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定 T(n) 的数量级。算法的时间复杂度,也就是算法的时间量度,记作T(n)=O(f(n)).它表随问题规模n的增大,算法执行时间的增率和f(n)增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数。

 6.什么是推导大O阶?

推导大O阶:

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

常见的时间复杂度所耗时间大小排列:

O(1)<O(\log n)<O(n)<O(n\log n)<O(n^{^{2}})<O()

相关文章:

  • ubuntu 服务器版本常见问题
  • Node.js多版本共存管理工具NVM(最新版本)详细使用教程(附安装包教程)
  • 重返JAVA之路-初识JAVA
  • 【android bluetooth 协议分析 01】【HCI 层介绍 1】【hci_packets.pdl 介绍】
  • 第十二天 - Flask/Django基础 - REST API开发 - 练习:运维管理后台API
  • Linux环境变量详解
  • 无人机在极端环境材料的选择
  • 热门面试题第15天|最大二叉树 合并二叉树 验证二叉搜索树 二叉搜索树中的搜索
  • 栈与队列-JS
  • 互质的数-蓝桥20245
  • 第二节:React 基础篇-受控组件 vs 非受控组件
  • springboot网站项目+layui框架动态渲染table表格数据信息
  • Apache Doris内存与超时参数配置详解
  • (四)机器学习---逻辑回归及其Python实现
  • cat命令查看文件行数
  • RK3568 基于Gstreamer的多媒体调试记录
  • 2025年工会考试题库及答案
  • 深度学习基础--CNN经典网络之InceptionV1研究与复现(pytorch)
  • 【力扣03】无重复字符的最长子串
  • 4月11日随笔
  • 非政府组织网站的建设/连云港百度推广总代理
  • 东营招标建设信息网/搜索引擎优化seo多少钱
  • 网站建设内容工作总结/北京软件培训机构前十名
  • 昆明建设网站制作/aso优化排名
  • 深圳做网站有哪些/重庆seo薪酬水平
  • 青岛专业做网站优化/免费企业建站