数据结构与算法——算法和算法分析

简介: 数据结构与算法——算法和算法分析

一.基本概念


       算法的定义:对待特定问题求解方法和步骤的一种描述,他是指令的有限序列(其中每条指令表示有一个或多个操作)


       算法的描述:


      中文,英文

      流程图   NS流程图

      伪代码:类语言 eg:类C语言

      程序代码:C/C++语言    java语言……

                              858db2fb09df49dd9a6713d2c0703ade.png


二. 算法时间效率的度量


1.依据该算法编制的程序在计算机上执行所消耗的书简来度量


2.度量算发消耗时间


  事后统计:将算法实现,测算时间与空间开销        缺点:环境好坏,掩盖了算法本身的优劣

  事前分析:对算法所消耗资源的一种估计方法

  NS流程图

4af365e0827d433286c228747aa3d37e.png


三.算法与程序


       1.算法:解决问题的一种方法或一个过程,考虑如何将输入转化成输出,一个问题可以有多种算法


       2.程序:是用某种程序设计语言对算法的具体实现


      f33b7fe39c5243c995b533cac9ef6959.png


算法特性:


有穷性           执行步骤和执行时间

可执行性       每条指令有确切的含义,没有二义性,在任何条件下,只有唯一的一条执行路                       径,即对于相同的输入只能得到相同的输出

输入               有零个或者多个输入

输出               有一个或者多个输出

算法设计要求:


正确性:


       1.无语法错误


       2.对于几组输入数据能够得到满足要求的结果


       3.对于精心选择的,典型苛刻且带有刁难性的几组数据能够得到满足要求的结果


       4.一切合法的输入数据都能够得到满足要求的结果


可读性:


       易语阅读交流


健壮性 (鲁棒性):


       输入非法数据算法恰当的做出反应或进行相应处理,而不是产生莫名其妙的结果


高效性:


       存储空间小,且效率高。


三. 算法运算时间


 每条语句执行一次所执行的时间,一般随机器而异的,取决于机器指令的性能,速度以及编译器的代码质量,是有机器本身软件决定的,与算法无关。


   所以:假设执行每条语句所需要的时间均为单位时间。


               即改语句执行一次所需要的时间   =>(趋近于)  1


              算发运行时间=语句频度


相关文章
|
1月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
69 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
1月前
|
机器学习/深度学习 存储 缓存
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
文章主要介绍了排序算法的分类、时间复杂度的概念和计算方法,以及常见的时间复杂度级别,并简单提及了空间复杂度。
26 1
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
|
24天前
|
并行计算 算法 IDE
【灵码助力Cuda算法分析】分析共享内存的矩阵乘法优化
本文介绍了如何利用通义灵码在Visual Studio 2022中对基于CUDA的共享内存矩阵乘法优化代码进行深入分析。文章从整体程序结构入手,逐步深入到线程调度、矩阵分块、循环展开等关键细节,最后通过带入具体值的方式进一步解析复杂循环逻辑,展示了通义灵码在辅助理解和优化CUDA编程中的强大功能。
|
1月前
|
存储 算法 Java
Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性
Java Set因其“无重复”特性在集合框架中独树一帜。本文解析了Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性,并提供了最佳实践建议,包括选择合适的Set实现类和正确实现自定义对象的hashCode()与equals()方法。
32 4
|
1月前
|
搜索推荐 算法
数据结构与算法学习十四:常用排序算法总结和对比
关于常用排序算法的总结和对比,包括稳定性、内排序、外排序、时间复杂度和空间复杂度等术语的解释。
20 0
数据结构与算法学习十四:常用排序算法总结和对比
|
1月前
|
存储 缓存 分布式计算
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
这篇文章是关于数据结构与算法的学习指南,涵盖了数据结构的分类、数据结构与算法的关系、实际编程中遇到的问题以及几个经典的算法面试题。
30 0
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
|
1月前
|
算法
PID算法原理分析
【10月更文挑战第12天】PID控制方法从提出至今已有百余年历史,其由于结构简单、易于实现、鲁棒性好、可靠性高等特点,在机电、冶金、机械、化工等行业中应用广泛。
|
1月前
|
算法
PID算法原理分析及优化
【10月更文挑战第6天】PID控制方法从提出至今已有百余年历史,其由于结构简单、易于实现、鲁棒性好、可靠性高等特点,在机电、冶金、机械、化工等行业中应用广泛。
|
1月前
|
机器学习/深度学习 搜索推荐 算法
探索数据结构:初入算法之经典排序算法
探索数据结构:初入算法之经典排序算法
|
1月前
|
算法 Java 索引
数据结构与算法学习十五:常用查找算法介绍,线性排序、二分查找(折半查找)算法、差值查找算法、斐波那契(黄金分割法)查找算法
四种常用的查找算法:顺序查找、二分查找(折半查找)、插值查找和斐波那契查找,并提供了Java语言的实现代码和测试结果。
20 0