数据结构与算法 02:特性 & 设计要求

简介: 数据结构与算法 02:特性 & 设计要求

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


算法的特性


算法有以下几种特性


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


算法的设计要求


衡量一个算法,有以下几个方法


  • 正确性:是指算法至少具有输入、输出和加工处理无歧义,并且可以正确反映问题的需求,以及正确得到问题的答案,所谓的正确一共有四个层次:


  • 没有语法错误
  • 能够根据正确的输入的值得到满足要求的输出结果
  • 能够根据错误的输入的值得到满足要求的输出结果
  • 对于精心设计且极其刁钻的测试数据都能满足要求的输出结果


  • 可读性:便于阅读、理解和沟通


  • 健壮性:当输入的数据不合法时,算法也能给出相关的处理,而不是产生异常或者莫名其妙的错误,可以简单理解为:算法的容错能力


  • 时间效率高和存储量低:对算法进一步优化,尽量慢速时间效率高和空间存储量低的需求


相关文章
|
5月前
|
算法 Java 程序员
【算法训练-队列 一】【结构特性】用两个栈实现队列
【算法训练-队列 一】【结构特性】用两个栈实现队列
30 0
|
5月前
|
缓存 算法 Java
Linux内核新特性年终大盘点-安卓杀后台现象减少的背后功臣MGLRU算法简介
MGLRU是一种新型内存管理算法,它的出现是为了弥补传统LRU(Least Recently Used)和LFU(Least Frequently Used)算法在缓存替换选择上的不足,LRU和LFU的共同缺点就是在做内存页面替换时,只考虑内存页面在最近一段时间内被访问的次数和最后一次的访问时间,但是一个页面的最近访问次数少或者最近一次的访问时间较早,可能仅仅是因为这个内存页面新近才被创建,属于刚刚完成初始化的年代代页面,它的频繁访问往往会出现在初始化之后的一段时间里,那么这时候就把这种年轻代的页面迁移出去
|
5月前
|
算法 安全 Java
【算法训练-栈 一】【结构特性】有效的括号、最小栈(包含Min函数的栈)
【算法训练-栈 一】【结构特性】有效的括号、最小栈(包含Min函数的栈)
35 0
|
2月前
|
存储 算法 Python
算法的特性及其实现
算法是计算机科学中的核心概念,它代表了解决问题的步骤和过程。一个有效的算法不仅应当能够解决问题,还应当具有一些重要的特性,如正确性、可读性、健壮性、效率等。本文将详细讨论这些特性,并通过代码示例进行说明。
11 1
|
3月前
|
安全 算法 Java
JDK 9新特性:增强的加密算法支持
本文将深入探讨JDK 9中增强的加密算法支持这一新特性。随着网络安全威胁的日益严重,加密算法在保障数据安全方面起着至关重要的作用。JDK 9通过引入更多高效、安全的加密算法,提升了Java应用程序的加密能力。本文将详细介绍这些新加密算法的特点,以及如何在实际项目中应用这些新特性来提高数据的安全性。
|
9月前
|
算法 程序员
认识算法的特性
努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!欢迎记录下你的那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对于算法的理解,同时吸收他人的奇思妙想,一起见证技术er的成长~
68 1
|
11月前
|
存储 算法 大数据
算法的特性和空间复杂度---数据结构
算法的特性和空间复杂度---数据结构
|
11月前
|
机器学习/深度学习 传感器 算法
基于Bellhop算法模拟海底地形起伏条件下的传播特性附Matlab 源码
基于Bellhop算法模拟海底地形起伏条件下的传播特性附Matlab 源码
|
存储 自然语言处理 算法
认识算法的特性
认识算法的特性
96 0
|
存储 机器学习/深度学习 自然语言处理
【算法的特性,标准,时间维度空间维度计算方式】
【算法的特性,标准,时间维度空间维度计算方式】
229 0
【算法的特性,标准,时间维度空间维度计算方式】